JAVA-1284: MongoTimeoutException should include the total time waited before timing out, not just the last time through the loop
JAVA-1285: When waiting for the cluster description, force a connection attempt each time through the loop
JAVA-1285: When server selection fails to find a match, await only for connectRetryFrequency, instead of maxWaitTime, so that attempts to re-connect to each server happen more frequently.
JAVA-1285: Take two
JAVA-1285: Await the minimum of the connect retry frequency and the remaining wait time
JAVA-1285: formatting