## 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
person_anonymous = person_factory(team=self.team, distinct_ids=["xyz"])
            person_identified_already = person_factory(team=self.team, distinct_ids=["tuv"], is_identified=True)
            
            response = self.client.get(
                "/api/person",
            )  
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 2)
            
            response = self.client.get("/api/person/?is_identified=false")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            self.assertEqual(response.json()["results"][0]["id"], person_anonymous.id)
            self.assertEqual(response.json()["results"][0]["is_identified"], False)
            
            response = self.client.get("/api/person/?is_identified=true")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            self.assertEqual(response.json()["results"][0]["id"], person_identified_already.id)
            self.assertEqual(response.json()["results"][0]["is_identified"], True)
        def test_delete_person(self):