PYTHON-712 ObjectId.is_valid(None) should be False.
PYTHON-710 test that SON.to_dict doesn't change data.
PYTHON-710, SON.to_dict shouldn't change original data.
PYTHON-710, simplify SON's equality operator.
Use modern 'distinct' syntax in tests.

The old syntax is now an error:
https://jira.mongodb.org/browse/SERVER-12642
Revert "PYTHON-710, simplify SON's equality operator."

This reverts commit 551e1e3edff029ffb1ad5e789b662a050ddf3a49.
The change did not work as expected in Jython.
PYTHON-709 insert _id in document after applying non-copying SONManipulators.
Fix tests under pypy3.
PYTHON-714 Work around localhost exception issues in add_user when connected to MongoDB >= 2.7.1.
PYTHON-717 - Implement MongoCredential
PYTHON-718 - Use SSLContext when available.

This commit also introduces a fake SSLContext class
for use in python versions that don't provide one.
Fix an issue with mongos read preferences.
Make gridfs tests pass regardless of execution order.
PYTHON-719 Read preference backward compatibility

This commit does a few things:

- Adds tag_sets back (deprecated)
- Adds secondary_acceptable_latency_ms back (deprecated)
- Makes acceptable latency a per read preference setting
- Cleans up read preference instance generation
- Adds latencyThresholdMS as an alias for secondaryAcceptableLatencyMS.
The name may change before 3.0 is released.
Fix read preference tests.
Spelling.
PYTHON-683 Separate unit tests and integration tests in the pymongo test suite.
Raise SkipTest in tests that require a connection to MongoDB when none is available.
PYTHON-525 Implement Cluster, Server, and Monitor.

This is prelude to a unified MongoClient class to replace the current
MongoClient and MongoReplicaSetClient. Conforms to the Cluster Monitoring Spec.
PYTHON-525 - Add required properties to MongoClientNew
PYTHON-525 - Cluster monitoring python 3 support.