CSHARP-950: For GeoJson $near queries $maxDistance goes inside $near.
CSHARP-950: Added integration tests with the server.
CSHARP-950: Skip GeoJson integration tests when connected to older servers that don't support GeoJson.
copied over code from working branch as a rebase would be virtually impossible.
ported up some changes made in 1.9.0.
made the necessary changes to the Builders to get them functioning with the new SerializationInfoBinder.
compilation success.
fixing up issues with the builders.
fix issue with infinite recursion.
added back in missed 1.9.0 feature.
fix day of week test.
refactored builder helper to be an instance class, allowing better reuse.
fixed issue with deserialization of anonymous classes.
removed CSHARP-522 test as it was no longer relevant.
fixed a bug related to distinct only being allowed as the last operation in the query model.
botched rebase left out all the tests. Adding them back.
fixed anonymous type deserialization to be allowed when a creator map has been specified.
added back in support for Linq with BsonDocument and BsonArray.
added back support for Explain into Linq for both query and the aggregation framework.