s3-mdssvc: add new subsystem for Spotlight

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: add error checking macros

These will be removed in a later commit. The imported code from
Netatalk that makes extensive use of this, removing this after
importing the code deemed easier.

Signed-off-by: Ralph Boehme <rb@sernet.de>
dalloc: typesafe object container
Spotlight: SPARQL parser, mapping table and marshalling

Also add types and other infrastructure code to mdssvc.h
Spotlight configure option and pkg-config for libtracker-sparql

Since I couldn't figure out how to properly make use of the compiler
flags the pkg-config check for tracker-sparql sets, I simply add
a manual checks for glib-2.0, gio and gobjects
mdssvc: pass share number, allocate response buffer and dump Spotlight request

Signed-off-by: Ralph Boehme <rb@sernet.de>
mdssvc: Spotlight RPC command stubs and hash table

Add init and shutdown callbacks where the Spotlight RPC cmd hash table
is initialized.
mdssvc: set response buffer size and status
Spotlight RPC: add implementations

RPC: fetchPropertiesForContext
RPC: open query
RPC: fetch query results
RPC: fetch result attributes
RPC: store attributes
RPC: close query
RPC: fetch attributenames

Also updated:
- mdssvc: add a state struct
- remove typedef slq_t, use struct sl_query instead
- fix all elements names of struct sl_query
- make a connection to Tracker
- add support functions for maintaining a list of active queries
- add hash table for query results
- add structure for ino to path mapping
- add MAX_SL_RESULTS and remove unused stuff
Remove hardcoded DBUS_SESSION_BUS_ADDRESS

A valid DBUS_SESSION_BUS_ADDRESS must be provided via the process
environment.
mdssvc: remove error checking macro
Spotlight: add SPAQRL mapping for kMDItemLastUsedDate