PYTHON-525 Avoid lost notifications in Monitor.request_check().

If another thread called Monitor.request_check() while the Monitor was in run(),
right after _check_with_retry() and before it acquired the lock, the Monitor
would miss the notification and wait "heartbeat_frequency" before checking
again.

Doesn't matter in real life, since re-checking a server a millisecond after the
last check isn't useful, but important for tests that change state and immediately
call request_check().
PYTHON-719 - Fix imports and indentation.
PYTHON-743 - Add ClientOptions class.
Tiny style fix.
PYTHON-525 Race condition in TestClusterErrors.test_pool_reset.
Enable MongoClient unittests that were disabled by mistake.
PYTHON-505 Allow C extensions to encode any mapping type, not just dicts.
Use isinstance(xxx, collections.MutableMapping) instead of isinstance(xxx, dict)
test.test_bson works against C extensions.
minor test improvements
Use Mapping, instead of MutableMapping, where appropriate
One more place to use Mapping instead of MutableMapping
Use PyObject_IsInstance(xxx, Mapping) in C extensions
remove unnecessary check
fixup for NotADict
test improvements, but failing
fix dbref
actually fix dbref
reset test/qcheck.py
fix up C extensions per bernies comments