[qtcontacts-sqlite] Explicitly finish queries in non-automatic storage

Failure to finish queries leads to the SQLITE_LOCKED error.
Merge pull request #1 from matthewvogt/query-finish

[qtcontacts-sqlite] Explicitly finish queries in non-automatic storage
[qtcontacts-sqlite] Return self contact if explicitly requested by ID

Filter out of results otherwise.
[qtcontacts-sqlite] Ensure notifications are emitted after commit

If the transaction is not yet committed, the notified updates are not
yet visible to other processes.
[qtcontacts-sqlite] Fix signal propagation
Merge pull request #3 from matthewvogt/txn-fix

Ensure that transactions are complete before emitting notifications
[qtcontacts-sqlite] Traverse tables in contacts sequence

In preference to traversing tables for each contact.
[qtcontacts-sqlite] Read relationships in synchronized query

Instead of short-lived queries created and destroyed while processing
the primary contact traversal.
[qtcontacts-sqlite] Implement basic fetch optimization hints
Merge pull request #4 from matthewvogt/read-perf

Minor performance improvements to contact fetching.
[qtcontacts-sqlite] Properly enforce uniqueness constraints

Uniqueness constraints on details were previously not enforced
correctly.  This commit adds uniqueness constraint checks, and adds
a unit test to ensure we don't regress.

Also improve the aggregation unit tests to ensure that only one local
contact is ever created for new aggregate contact details.
Merge pull request #5 from chriadam/master

[qtcontacts-sqlite] Improve aggregation unit tests