Added CollectionHelper

So operation tests can rely solely on operations
Added async helper methods that can take a connectionProvider
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 GetCollectionNamesOperation
Added executeAsync to FindAndRemoveOperation
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
Updated RemoveOperationSpecification to use helper and test async
Updated UpdateOperationSpecification to use helper and test async
Added executeAsync to DropCollectionOperation
Simplified many of the operations.  Replaced TransformBlock with identical already-existing Function interface.
Remove unused future
Added executeWrappedCommandProtocol(Async) default codec helpers
DropCollection now returns Void
Fix queryResultToList

Tie it down to a connectionProvider