PYTHON-525 Python 3 compatibility in SocketInfo.check_auth.
PYTHON-525 Don't reset whole Cluster on network error.

According to the spec, clear the pool for the server we were disconnected from
and mark the server Unknown, but don't update other servers. This is a change
from PyMongo 2's MongoReplicaSetClient, which reset all servers and their pools
when disconnected from the primary specifically.

The spec's justification is, "since application sockets are used frequently, a
network error likely means the server has just become unavailable, so an
immediate refresh is likely to get a network error, too. The server will not
remain Unknown forever. It will be refreshed by the next periodic check or, if
an application operation needs the server sooner than that, then a re-check
will be triggered by the server selection algorithm."

If the primary has gone down and we are in the midst of an election, marking
all servers Unknown and forcing a re-scan will simply detect that all servers
are currently secondaries, which the client knows anyway.