Support RLMObject and RLMArray predicates comparing on object identity

Also adds more tests and fixes a few issues with our initial support for keypaths.

@jpsim @bmunkholm @kneth 
Please give an example of what this means:

> i.e. `[Person objectsWhere:@"dog == %@", myDog]`