[JAVA-1410] Documenting org.bson.BSON;
Fixed shutdown hook in ClusterFixture
JAVA-1164: Replaced use of ThreadLocal<Random> subclass (used to override initialValue()) with a method
that explicitly gets the thread local value and sets it if it's null.  This avoids some nasty classloader issues
that show up particularly in web applications, where this anonymous subclass is holding a reference to the
 entire web app classloader, which is not released until the thread exits.
Fixed Checkstyle error
Using CodecRegistry for message encoding to ensure that the correct BsonDocument Codec is used depending on the actual class of the document
(which may be a RawBsonDocument or a BsonDocumentWrapper).
In MongoClientOptions and ServerSettings, replaced heartbeatConnectRetryFrequency with minHeartbeatFrequency in order to comply with the server monitoring specification.

JAVA-1470
In MongoClientOptions and ServerSettings, removed heartbeatThreadCount property.

JAVA-1479
Mechanism properties for MongoCredential are now case-insensitive

 JAVA-1462
Removed logging of initialization failure, as that should be logged higher up.
Also changed the name of the logger to be the module name rather than the class name, as it is elsewhere.

 JAVA-1459
Removed unused non-public method in DB and unused private static field in DBCollection

JAVA-1416
Removed old DatabaseAdministration class

JAVA-1332
Removed old CollectionAdminstration class

JAVA-1332
Add some generics flexibility to RootCodecRegistry
Removed async Administration classes

JAVA-1332
Remove getIndexes(Class<C> clazz)

JAVA-1332
Remove DropDups

JAVA-1332 / JAVA-1412
Clean ups
RenameCollectionOperation now supports cross db moves

JAVA-1332
Removed CreateCollectionModel

JAVA-1332
Small doc fixes