Basic support for link queries

This PR adds support for link queries - see issue #617. The core library does not support:

* queries on binary data (`NSData`)
* case insensitive queries on strings (`NSString`)
* predicates `BEGINSWITH`, `ENDSWITH`, and `CONTAINS` for strings

@alazier @jpsim @bmunkholm 
I actually through about it when I wrote it but due to these C++ template mechanisms in the core' query expressions, it is hard to get it simple and elegant. As you can see, the core is using different type names for `float`, `double`, and `int64_t`. One unified function to add numeric constraint would be nice but I fear that I will be moving the ugly details to another spot instead of getting it elegant.