One more time trying to fix 'should read from a secondary'
Removing unnecessary query flags passed to MongoQueryCursor and MongoAsyncQueryCursor
Removing unnecessary class MapReduceCommandResultCodec.  Replacing usage with CommandResultWithPayloadDecoder
Updated the test for query comments so that we can check it's really working.
Fixed checkstyle issues.  Oops.
Added a CombinedFuture

Which allows callbacks to be registered on a list of MongoFutures.
Normalising variable name to provider across the board
Async Index Operations

Added an executeAsync to the CreateIndexes, DropIndexes and GetIndexes operations
Added executeAsync to User based operations

Added abstract base BaseUserOperation class
Updated CreateUserOperation
Updated DropUserOperation
Updated UpdateUserOperation
Updated UserExistsOperation
Added executeAsync to DropCollectionOperation
Added GetCollectionNamesOperation
Added missing executeWrappedCommandProtocolAsync
Added executeAsync to FindAndRemoveOperation
Moved CollectionHelper out for reuse
Added executeAsync to FindAndReplaceOperation
Added executeAsync to FindAndUpdateOperation
Added executeAsync to GetDatabaseNamesOperation
Added executeAsync to GroupOperation
Updated executeAsync for InsertOperation
Added executeAsync for map reduce operations