s3-mdssvc: dalloc: dynamic object store based on talloc

dalloc is a hack with a bizarre API, but it does its job: it's a
simple object store that allows for storing simple and complex data
types.

We'll use it for storing Spotlight query data.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: (un)marshalling Spotlight RPC blob

Add code for marshalling and unmarshalling Spotlight RPC blobs
from/into a dalloc object store.

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

Add mappings for metadata attribute between Spotlight and NEPOMUK for
use with Tracker.

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

Add a lexer and parser for translating Spotlight query strings to
SPARQL.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s3-mdssvc: full Spotlight implementation

Implement all Spotlight RPC commands with the Tracker SPARQL async
query API.

Tracker uses glib for implemeting async tasks, we thus have to use a
glib mainloop for processing sheduled tasks in threads.

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

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