Fix test_authenticate
Guard against gen_test coding mistakes.
Style.
PyMongo >= 2.5.1 compatibility: Get MongoReplicaSetClient's ___rs_state, not its __members.
Add 'started' attribute to Monitor class.

PyMongo >= 2.5.2 expects the RS monitor to have 'started' == true or false.
Configure longer timeouts on some long-running RS tests.

Starting in Tornado 3.1, @gen_test takes an optional timeout. Many RS tests require more than the default 5 seconds to pass.
Use Future instead of gen.Callback in test_each.
Use Future instead of gen.Callback in test_authenticate.
Rewrite connection pool. Motor is now compatible only with PyMongo HEAD.

Anticipating PyMongo 2.6, Motor now has its own connection pool that supports the same options as PyMongo 2.6's pool, without inheriting from it. This makes the API more compatible, and decouples the codebases a bit.