CSHARP-840: Handle $where correctly in Query.Not.
CSHARP-840: A more general fix for $operators and stricter checking for when equality testing is implied.
CSHARP-840: Refactor implementation of Query.Not from one complex method to several smaller ones. Change QueryBuilder unit tests so all tests test for the negated version of the query as well.