Add support for $exists operator

Added support for using the $exists operator, the $exists operator
can be used as either a singluar operator on a field or as a negated
operator on the field. The $exists operator is handled as a seperate
code branch within the negated or non negated code branches due to the
mapping of the query into SQL eg. "$exits:true" translates to
"IS NOT NULL".

Added tests for the $exists operator, these test for invalid syntax
handling, the correct where clause is generted for valid queries
and the correct results are generated from a valid query.