PYTHON-525 Bugfix, allow tests to override SERVER_WAIT_TIME.

The "with client_knobs(server_wait_time=0.1)" optimization for tests hadn't actually changed MongoClient's behavior.
PYTHON-525 Skip SSL tests quickly if SSL is disabled.

Don't wait 5 seconds to determine that an SSL-enabled server is unavailable.
PYTHON-525 Speed up ConnectionFailure tests.
Fix test_unix_socket for narrowed localhost exception.
PYTHON-525 Tests determine quickly if a mongod is available.

Don't wait 5 seconds before giving up.
Run tests even if prior run didn't clean up users.

If a previous test run created a user and didn't remove it (e.g. the test hung or a debugging session was terminated), the next test run will fail because of the narrowed localhost exception (SERVER-12621). Work around this by trying to log in as the test user, if that fails re-raise the original error.
PYTHON-525 Update test_ssl for new MongoClient.
PYTHON-525 Reimplement auth for new MongoClient.

The new MongoClient, based on Cluster and Server,
includes functionality that had been split between the
old MongoClient and MongoReplicaSetClient. A
previous commit introduced the new MongoClient
but broke authentication.