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.