mdssvc: new RPC service

'mdssvc' aka 'Metadata Search Service' is an RPC service used by Apple
for passing marshalled Spotlight search queries and results between
client to server.

Signed-off-by: Ralph Boehme <rb@sernet.de>
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>
s3-mdssvc: dalloc: typesafe object container

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: data structures for managing queries

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: Spotlight blob marshalling and unmarshalling

Functions for marshalling and unmarshalling a raw Spotlight data blob
into a DALLOC_CTX.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: metadata attribute mapping

Add a mapping between Spotlight metadata attributes and NEPOMUK
attributes.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: lexer and parser for Spotlight queries

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: build utility spotlight2sparql

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: validate snum and dispatch command

Also allocate response buffer sized according to the maximum fragement
size.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: debug logging of Spotlight dalloc objects

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

Add init and shutdown callbacks where the Spotlight RPC cmd hash table
is initialized.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: set response buffer size and status code

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: add Spotlight-RPC implementations

The following Spotlight-RPC commands are implemented:
* fetchPropertiesForContext
* open query
* fetch query results
* fetch result attributes
* store attributes
* close query
* 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

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

Signed-off-by: Ralph Boehme <rb@sernet.de>
fixme: s3-mdssvc: handling of not indexed shares

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: open_query() Spotlight RPC error handling

Errors in Spotlight RPC functions must be returned a Spotlight RPC
data blob with a -1 uint64, not as an DCE/RPC error.

Signed-off-by: Ralph Boehme <rb@sernet.de>