Add ServerDescription as a property of InternalConnection and use it to implement Connection.getDescription.
With this change, a valid connection will always at least report the correct server version, since in order
for the version to change the server would have to be restart and the connections would all reset.
This is a pre-cursor to adding authentication to heartbeat connections, to avoid authenticating arbiters.

JAVA-1475
Authenticate heartbeat connections unless they are to an arbiter.

JAVA-1465
Connection interface now has a ConnectionDescription instead of a ServerDescription.
ServerDescription has more information than is typically needed once you have a connection, so this chance
provides some useful property segregation among the two classes, thought there is some overlap.
Completed Javadoc for the driver-core module of almost all public classes and public or protected members.

JAVA-1391
Replace KillCursor class with just a List<ServerCursor>
Removed unused Group class
Moved Loggers class into the logging package and made Logger implementations package private.
Support authentication mechanism negotiation. If the authentication mechanism is unspecified,
the driver will use the most secure mechanism based on the server version. Currently this is
SCRAM-SHA-1 for server version >= 2.8, and MONGODB_CR for earlier server versions.

JAVA-1461
Removed CursorFlag dependency in FindOperation

Added boolean properties for the individual CursorFlags in FindOperation

JAVA-1443
Added boolean parameters to QueryProtocol / QueryMessage
Remove CursorFlag use in MongoCollectionImpl

JAVA-1443
Removed CursorFlag

JAVA-1443