## Is your feature request related to a problem?

/api/person/merge currently performs a merge of two people. This logic is duplicated between app and plugin-server, badly.

## Describe the solution you'd like

Avoid duplicating, send a message to plugin-server

## Describe alternatives you've considered

Duplicating tricky and race-condition-heavy logic.

## Additional context

cc @yakkomajuri this is worth adding to team extensibility backlog - pretty sure this will cause bad correctness issues.

#### *Thank you* for your feature request – we love each and every one!

posthog/api/test/test_person.py
)
            
            response = self.client.get("/api/person/?distinct_id=distinct_id")  
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            self.assertEqual(response.json()["results"][0]["id"], person1.pk)
            self.assertEqual(response.json()["results"][0]["is_identified"], True)
            response = self.client.get("/api/person/?distinct_id=another_one")  
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            self.assertEqual(response.json()["results"][0]["id"], person1.pk)
            
            response = self.client.get("/api/person/?email=another@gmail.com")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            self.assertEqual(response.json()["results"][0]["id"], person2.pk)
            
            for _identifier in ["another@gmail.com", "distinct_id_2"]:
                response = self.client.get(f"/api/person/?key_identifier={_identifier}")
                self.assertEqual(response.status_code, status.HTTP_200_OK)
                self.assertEqual(len(response.json()["results"]), 1)
                self.assertEqual(response.json()["results"][0]["id"], person2.pk)
            
            response = self.client.get("/api/person/?email=inexistent")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 0)
            response = self.client.get("/api/person/?distinct_id=inexistent")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 0)
        def test_cant_see_another_organization_pii_with_filters(self):