CSHARP-790 and CSHARP-815: Add support for MaxTime and new GeoNear options.
CSHARP-796. Account for replica set config version being sent in IsMaster of 2.5.x+
CSHARP-790: Changed MapReduce to use new MapReduceArgs parameter.
CSHARP-796 - Fix potential race condition in member adding.
* Added test for replica set
* Fixed replica set name test to work for all counts
* Fixed TestArbiter
* Fixed TestPassives
CSHARP-790: Added support for MaxTime to FindOneAs and use FailPoints to test MaxTime.
CSHARP-790: Only use FailPoint to test MaxTime if server we are connected to supports it.
CSHARP-790: Fix issue with default ReadPreference for FindOne.
CSHARP-790: Renamed private field in FailPoint class.
Added FeatureTable to make it easier to test whether a feature is supported. This also competely isolates code that needs to know if a feature is supported from knowing how to detect if a feature is supported.
Moved feature detection logic out of FeatureTableCreator and into a family of FeatureDetector classes (two for now, one for version dependent features and another for features that depend on a server parameter being set).
Added FeatureDetector and implemented it in terms of IFeatureDependency implementations: ServerParameterDependency, ServerVersionDependency and WireVersionDependency.
Removed Feature class and replaced FeatureTable with FeatureSet.
Made FeatureSet an internal class. Removed checking of WireVersion for now since server team hasn't yet defined what the values mean.
CSHARP-800: Get the output collection name from the $out stage in the pipeline instead of from the aggregate command result (because the server no longer reports the output colleciton name in the command result).
On the recommendation of the server team use fail points with "alwaysOn" instead of { times : 1 }.