Use __objectid instead of simply 'id' for object ids

Core data entities are much more likely to use an 'id' field and that
causes a conflict(duplicate column names).

I have no idea how the default core data implementation actually solves
this issue but this will do for now
Add support for having "== nil" or "!= nil" in a query
count queries can have join statements too
Add support for @count
Refer to all columns by the full name(table.column)

If that's not done, we run into ambiguity issues if we're joining with
another table(or doing a self-join) that has column names in common
Fix a bug that was causing bindings not to be bound properly

When the right side of an expression is pasted directly into the query
string, its value should no longer be part of the bindings, otherwise
the indices for bindings will be off.
Queries for fetched dictionaries now support limited joins

Only properties that are to-one relationships work currently
Add support for queries that have NSManagedObject instances as binding arguments
Add debugging for when queries fail
Handle the case where part of the LHS of a where clause points to a nested relationship
Return an objectID linked to the correct entity in the case of inheritance
If the RHS is a newly-inserted managed object(not yet persisted) give up on finding it as it doesn't have an object id yet
Turn off node cache for now

It was causing buggy behaviour when updating the same node multiple
times, the returned information would end up being half-empty. We should
investigate this further at some point
Handle the case where the RHS of an expression is an NSManagedObjectID
Fix caching behaviour

updateWithValues:version: Needs to have all values passed to it again,
not just changed ones.
Use outer joins instead of inner ones

This has performance implications and we should ideally differentiate
the cases that need an outer join and use it only on those, but the
current implementation is incorrect.

Consider the query:
"entity.rel = null || entity.rel.field = 'something'"

This doesn't work with inner joins.