[libcommhistory] Don't resolve contacts by default for CallModel and ConversationModel

Contact resolution is expensive, not always available, and infrequently
used. It should be opt-in for all models where it's not necessary for
functionality.

This is an API change. Models interested in contacts should opt-in using
setResolveContacts.
Remove redundant calls to enableContactChanges(false)
[libcommhistory] Add resolveContacts property for declarative models
[libcommhistory] Add contactIds and contactNames roles for EventModel

Exposing the QPair of contacts to QML serves no purpose; it can't be
used there.
Merge pull request #70 from special/contact-not-default

[libcommhistory] Only resolve contacts for event models when explicitly requested
Add AutoSavepoint database utility

Savepoints, unlike transactions, can be freely nested. They can be used
when inside a normal BEGIN/COMMIT transaction or independently, and in
the latter case will behave like a normal transaction.
[libcommhistory] Add extraProperties API to Event

Extra properties are arbitrary key/value properties that can be attached
to an event. They're intended to be used for temporary or uncommon
values attached to an event, since they are more expensive to query. The
immediate use case is certain MMS-related properties, and it will also
replace some of the less commonly used properties of Event.

A database flag is used to avoid the query overhead when no extra
properties exist on an event.