Server Added/Removed to/from Cluster

This is a part of the cluster monitoring spec. Basically when a server is added or removed from a configuration based on an ismaster call, it will have it automatically added or removed from the cluster.

This pull includes:

1. A rename of `Mongo::Pool::Connection` to `Mongo::Connection`, since it no longer is specific to a connection pool. The monitor has it's own dedicated connection that does not use the pool to never conflict with it.

2. Pushing refresh checks into the `Monitor` itself, and allowing both async and sync checks all the way up to the entire cluster.

3. Fixes intermittent failures on Travis by shutting down all monitor threads after each spec.

4. Adding servers is complete, removing is all complete with the exception of the cluster implementation. (The event handler is in place)

5. The cluster simulator can now add and remove members to the replica set.

cc/ @samantharitter @estolfo