## 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/models/person.py
CohortPeople = apps.get_model(app_label="posthog", model_name="CohortPeople")
        first_seen = self.created_at
        
        for other_person in people_to_merge:
            self.properties = {**other_person.properties, **self.properties}
            if other_person.created_at < first_seen:
                
                first_seen = other_person.created_at
        self.created_at = first_seen
        self.save()
        
        for other_person in people_to_merge:
            other_person_distinct_ids = PersonDistinctId.objects.filter(person=other_person, team_id=self.team_id)
            for person_distinct_id in other_person_distinct_ids:
                person_distinct_id.person = self
                person_distinct_id.save()
            other_person_cohort_ids = CohortPeople.objects.filter(person=other_person)
            for person_cohort_id in other_person_cohort_ids:
                person_cohort_id.person = self
                person_cohort_id.save()
            other_person.delete()
    objects = PersonManager()
    created_at: models.DateTimeField = models.DateTimeField(auto_now_add=True, blank=True)
    team: models.ForeignKey = models.ForeignKey("Team", on_delete=models.CASCADE)
    properties: models.JSONField = models.JSONField(default=dict)
    is_user: models.ForeignKey = models.ForeignKey("User", on_delete=models.CASCADE, null=True, blank=True)
    is_identified: models.BooleanField = models.BooleanField(default=False)
    uuid = models.UUIDField(db_index=True, default=UUIDT, editable=False)
    
class PersonDistinctId(models.Model):