## 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
["distinct_id2", "17787c327b-0e8f623ea9-336473-1aeaa0-17787c30995b7c"],
            )
            self.assertEqual(
                response["results"][1]["distinct_ids"],
                ["distinct_id1", "17787c3099427b-0e8f6c86323ea9-33647309-1aeaa0-17787c30995b7c"],
            )
        def test_person_cohorts(self) -> None:
            person_factory(team=self.team, distinct_ids=["1"], properties={"$some_prop": "something", "number": 1})
            person2 = person_factory(
                team=self.team, distinct_ids=["2"], properties={"$some_prop": "something", "number": 2}
            )
            cohort1 = Cohort.objects.create(
                team=self.team, groups=[{"properties": {"$some_prop": "something"}}], name="cohort1"
            )
            cohort2 = Cohort.objects.create(team=self.team, groups=[{"properties": {"number": 1}}], name="cohort2")
            cohort3 = Cohort.objects.create(team=self.team, groups=[{"properties": {"number": 2}}], name="cohort3")
            cohort1.calculate_people()
            cohort2.calculate_people()
            cohort3.calculate_people()
            response = self.client.get(f"/api/person/cohorts/?person_id={person2.id}").json()
            response["results"].sort(key=lambda cohort: cohort["name"])
            self.assertEqual(len(response["results"]), 2)
            self.assertDictContainsSubset({"id": cohort1.id, "count": 2, "name": cohort1.name}, response["results"][0])
            self.assertDictContainsSubset({"id": cohort3.id, "count": 1, "name": cohort3.name}, response["results"][1])
    return TestPerson
class TestPerson(
    factory_test_person(Event.objects.create, Person.objects.create, Event.objects.all, Person.objects.all)  
):
    pass