DATAMONGO-1093 - Added hashCode and equals in BasicQuery.

We now have equals and hashCode on BasicQuery. Previously we solely relied on Query.hashCode/equals which didn't consider the fields of BasicQuery.
Introduced equals verifier library to automatically test equals contracts.
Added some additional test cases to BasicQueryUnitTests.

Original pull request: #252.