Added support for the listIndexes command to ListIndexesOperation

JAVA-1456
Added ListCollections command support to ListCollectionNamesOperation

JAVA-1455
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.