PYTHON-525 Deprecate MongoReplicaSetClient.

MongoClient now supports all MongoReplicaSetClient's features.
Fix bugs and add features in the new MongoClient to bring it up
to spec. MongoReplicaSetClient is now a deprecated stub that
subclasses MongoClient.

Introduce new errors, NetworkTimeout and NotMasterError, to
communicate events that MongoClient must handle specially.
Raise OperationFailure if command response has no document.

Commands are implemented as a find_one on the "$cmd" collection.
In the unlikely event the find_one succeeds but has no documents,
raise OperationFailure.

Before this change, PyMongo would've thrown UnboundLocalError.