[qtcontacts-sqlite] Create sync-target constituent when required

When storing added details received from an external source, create
a constituent contact for that sync source if necessary to store the
new details.
[qtcontacts-sqlite] Add function to access contact manager engine

The contact manager engine must be used to access functions which
extend the Contacts API; to access these functions, use the new
contactManagerEngine() function to retrieve a typed pointer to the
engine from the QContactManager.

Note that 'QT += contacts-private' is necessary to access the engine
property of the contact manager class.
[qtcontacts-sqlite] Support add/remove contacts via storeSyncContacts

A contact pair of (empty, non-empty) requests that a constituent for
the current sync target be created with the updated details; a pair
of (non-empty, empty) requests that the constituent identified by the
non-empty contact should be removed.  Only constituents that match
the current sync target will be removed.