Set up contact listening on setResolveContacts

Before, this was inconsistently enabled after the query was executed, in
a very bug-prone way. It's cheap to enable on an empty model.
Remove contactCache from EventModelPrivate
Asynchronously resolve contacts for EventModelPrivate::addToModel

To preserve the current API (for now), a synchronous option is offered
that will insert the event immediately regardless of contact resolving,
and update asynchronously if necessary. This is used only by
EventModel::addEvents, and can be removed once that function is made
asynchronous.
Port RecentContactsModel to new event contact resolution
WIP Debug and timing for contact stuff