Switch to using General Visit for multi-event contacts.  Fixes #3424
Fixes #3425
Fixes #3301

I moved the logic to figure out weather an event is associated with other
events to Contact, because the association can only be determined through
a contact. If we'd try to infer association from an event, we'd run into
trouble if the same event is tied to multiple contacts. There is also no need
for the notion of 'principal_event' anymore, as the disposition category
for a contact with multiple events is now "General Visit" in all cases.