[qtcontacts-sqlite] Match to existing aggregate in SQL

Reading all aggregates into memory for match testing is not workable
for any reasonable number of contacts.

The match algorithm is now less sophisticated, but if necessary it
can be extended to correspond to the old version.
[qtcontacts-sqlite] Index on fields used in searches
[qtcontacts-sqlite] Use dedicated columns for lowered versions of text values

Conversion to lower inside queries is incredibly expensive, and may
also defeat indexing?
[qtcontacts-sqlite] Fix case sensitivity to match documentation

Case-insensitive matching is only required when MatchFixedString is
specified without MatchCaseSensitive.
[qtcontacts-sqlite] Tune contact matching algorithm
[qtcontacts-sqlite] Remove check for IsNot relationships

The aggregate match discovery is done on create, before any IsNot
relationships can have been created for the new contact.
[qtcontacts-sqlite] Build without aggregation switch

Passing tests, albeit with some disagreement on the meaning of case
sensitivity in searching.
Merge pull request #7 from matthewvogt/sql-matching

[qtcontacts-sqlite] Match to existing aggregate in SQL