Added ServerDescription property to Connection
Moving some MongoCollection async tests to Operation-based tests.
Removing async support from org.mongodb.MongoCollection.  It will be added later to a dedicated sets of interfaces for async.
Introduced new binding API and a simple implementation of a ReadWriteBinding
Introduced new ReadOperation and WriteOperation interfaces
Now that Connection has a ServerDescription, no need to pass it separately to Protocol.execute/executeAsync
Adding overrides of write protocol async methods to do the same logging as their synchronous counterparts
Removing connection pinning in org.mongodb.MongoClient, until we come up with a better API for it.
Added getBinding method to Fixture
Converted all operations that use a cursor from implementing Operation to implementing ReadOperation
Converted all remaining read operations from implementing Operation to implementing ReadOperation
Converted all write operations from implementing Operation to implementing WriteOperation
Added CommandReadOperation for commands that read and CommandWriteOperation for commands that write, and removed CommandOperation.  That was the list Operation implementer, so removed that too.
Added CommandReadOperation for commands that read and CommandWriteOperation for commands that write, and removed CommandOperation.  That was the list Operation implementer, so removed that too.
Added async binding and operation interfaces
Added simple implementation of an AsyncReadWriteBinding
Added Fixture.getAsyncBinding
Updated first round of async write operation to use AsyncWriteOperation
Finished refactoring all operations to implement ReadOperation/AsyncReadOperation or WriteOperation/AsyncWriteOperation.
Added OperationHelper.serverIsAtLeastVersionTwoDotSix