Handle summary fields and fields of interest better in e-book-backend-sqlitedb.c
This patch dramatically changes the sqlitedb cache code by introducing
a table (array of structures) describing all of the fields which should
be included in the (summary) cache. Thus, all code that treats the
summary fields by hand previously now consults the cache generically.
The REV field is added to the summary table, the UID is always returned
in any results from e_book_backend_sqlitedb_search() and when
'fields_of_interest' is specified then the sqlite3 db will only
be queried for the fields_of_interest + UID (thus only those fields
will be present in any virtually created vcard objects).
Additionally, e_book_backend_sqlitedb_get_vcard_string() and _get_contact()
take a new 'GHashTable *fields_of_interest' argument for field filtering and
e_book_backend_sqlitedb_is_summary_query() is an exported api which can be
tested before calling e_book_backend_sqlitedb_get_vcard_string().