Connection is now reference counted instead of closable.  This solves a number of problems elegantly, like allowing an exhaust cursor to extends passed the lifetime of the ReadBinding where it got the connection from.
Added some package private access to server and pool so that tests can examine on their state.
Ensure that the primary's connection pool has no connections in use after after test.
Ensuring that reference counts of connections are properly released in tests that weren't
Replacing void MongoAsyncCursor.start(AsyncBlock) with MongoFuture<Void> MongoAsyncCursor.forEach(Block), so that errors can be reported.