Do greenlet pymongo connections synchronously

Summary:
Prerequisite to launching mongos tier to fix mongos routing problems.
Moving to synchronous connect() fixes a deadlock in pymongo when
failing over to a new mongos in the tier.

Test Plan:
* Start server, verify connections
* A lot of logging to trace what's happening & verify correctness
* Tested with many servers up
* Tested restarting mongos
* Tested stopping active mongos
* Tested stopping all mongos
* Tested resuming single mongos after stopping
* Tested shutting down instance

Next up -

prodtest

Reviewers: david, jack, josh

Maniphest Tasks: T11179

Differential Revision: http://phab.wish.com/D20813