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().