In AsyncQueryBatchCursor, setting connectionSource to null after release so that it's not double-released if killCursor is called more than once.

 JAVA-1566
Removed unused imports
NettyStream does need some synchronization between threads calling readAsync and Netty threads calling methods in InboundBufferHandler class

 JAVA-1587
Give a bit more time to selectServer in our tests.  1 second is not enough for Jenkins
Give a bit more time to selectServer in UserOperationsSpecification.  1 second is not enough for Jenkins
 Added support for storageEngine field for createIndexes and createCollection commands

  JAVA-1549
Decrease chance that the test will hit the race condition
Added more DocumentCodec unit tests
Added a smoke test for the async driver

Refs: JAVA-1564 JAVA-1565
Added regression check for null items occuring in the collection names

JAVA-1564
Connection pool invalidated when an asynchronous socket exception is returned from send or receive message callbacks.

  JAVA-1345
DocumentCodec now encodes and decodes List and Map values

  JAVA-1358
Removed UnacknowledgedWriteException class
Renamed MongoQueryFailureException to MongoQueryException
Renamed CommandFailureException to MongoCommandException
Renamed com.mongodb.bulk.BulkWriteException to com.mongodb.MongoBulkWriteException
Added MongoNodeIsRecoveringException and MongoNotPrimaryException

 JAVA-1570
Added MongoWriteException and MongoWriteConcernException for use in new MongoCollection API.

 JAVA-1587
Added support for modifiedCount in UpdateResult, which required using MixedBulkWriteOperation for
all writes in the new CRUD API, as only that operation informs the caller of the modifiedCount

As part of this, changed the exception types thrown for all single write operations in the new CRUD API
from WriteConcernException to MongoWriteException/MongoWriteConcernException

 JAVA-1569, JAVA-1587
Changed field name from removedCount to deletedCount