[qtcontacts-sqlite] Optionally allow non-durable updates

In order to reduce the IO impact of regular updates, allow some
updates to be made non-durable, by applying the changes to a shared
memory cache rather than to the database itself. Presence-only updates
are now non-durable, since presence state information is typically
invalidated by reboot in any case.

The shared memory cache is managed as a table of per-contact detail
lists. When reading a contact, if there are details of any given type
in the memory cache, then the details of that type in the database
are obsolete.  If an update is effected that requires changes to the
database tables, then the memory details are removed, and the DB
values are current once again.  If a detail type is not stored in the
cache, then the table values are always up to date.
Remove unused function
[qtcontacts-sqlite] Fix the definition of initial process

Initial process should apply to any process that connects to the
contacts database when no other process is connected.  The previous
implementation would also be true for the next process to connect after
the process that previously held the initial process state exited.