[qtcontacts-sqlite] Allow aggregation from the same synctarget

Previously, the aggregation heuristic assumed that no two contacts
from the same sync target could be the same person.  This is wrong,
as in some cases (eg, Telepathy rosters) several contacts may be
the same person but still come from the same sync source.

Since we do drastically more aggregation queries now, the aggregation
heuristic was also improved so that fewer table scans were performed
as part of aggregation.
Merge pull request #77 from chriadam/aggregation

[qtcontacts-sqlite] Allow aggregation from the same synctarget
[qtcontacts-sqlite] Use named parameters in temp table queries

Also, small speed improvement in aggregation query.
Merge pull request #78 from matthewvogt/named-params

[qtcontacts-sqlite] Use named parameters in temp table queries
[qtcontacts-sqlite] Convert local to was_local on creation

If a new local contact is aggregated into an aggregate which already
contains a local constituent at creation, change the new contact to
be a was_local constituent.
[qtcontacts-sqlite] Allow multiple GUID details

Global uniqueness does not imply no more than one per contact.
Merge pull request #79 from matthewvogt/was-local

[qtcontacts-sqlite] Convert local to was_local on creation
Merge pull request #80 from matthewvogt/multi-guid

[qtcontacts-sqlite] Allow multiple GUID details
[qtcontacts-sqlite] Allow 'local' and 'was_local' in a save batch

These two sync targets are effectively the same.
[qtcontacts-sqlite] Correct type of Anniversary type column
[qtcontacts-sqlite] Add support for Address subTypes field
Merge pull request #82 from matthewvogt/import-fixes

Import fixes
[qtcontacts-sqlite] Enforce single threaded access to contacts database

Ensure that only one thread is accessing the contacts SQLite database
at any given time.
Merge pull request #83 from matthewvogt/single-thread

[qtcontacts-sqlite] Enforce single threaded access to contacts database
[qtcontacts-sqlite] Increase the maximum digits used in minimized phone numbers

Although 7 digits is typically enough to differentiate phone numbers
in their local forms, an eighth digit is sometimes required to
differentiate between a local number and the voicemail service for
that number.
Merge pull request #84 from matthewvogt/max-digits

[qtcontacts-sqlite] Increase the maximum digits used in minimized phone ...
[qtcontacts-sqlite] Correct the handling of online accounts capabilities field
[qtcontacts-sqlite] Extend QContactOnlineAccount with display names

Add display name fields for account and service provider.
Merge pull request #85 from matthewvogt/extra-fields

[qtcontacts-sqlite] Extend QContactOnlineAccount with display names
[qtcontacts-sqlite] Simplifiy relationship query

Query relationships only for the contacts in a read batch.