Fix test.utils.read_from_which_host for the new read preferences.
More robust stepdown testing.

A 2.6 primary may not be ready to step down immediately after the RS
is initialized: "no secondaries within 10 seconds of optime". Keep
trying for a while.
PYTHON-722 Use SocketInfo in a with-statement.

SocketInfo is now responsible for sending and receiving messages,
for closing itself on error, and for returning itself to the pool
when its with-statement is exited.

Pool.discard_socket is removed. Returning a closed socket to the
pool has the same effect as discard_socket had.

Remove client._exhaust_next.
Fix ResourceWarning in test_dead_request_socket_with_max_size.