Added third status for connections: Unconnected.  This is to distinguish between a state where we're trying to reach a server and haven't succeeded or failed yet, and the state where we've tried and failed.
JAVA-836: Refined server monitor thread to log  every state change of the server description (except avg ping time change...).
Changed DefaultCluster.getDescription to fail early if not in connecting state.
Refactoring: changed ServerConnectionStatus to ServerConnectionState