Implemented Cluster Monitor tests and test harness to consume them
Fixed yml formatting
Fixed hosts in discovery test
Update discovery.yml test from spec.
YAML files should end with a newline.
Fix style in test_cluster_spec.
Correct cluster type if a primary uses internal IP.

Begin with CLUSTER_TYPE.ReplicaSetNoPrimary and a
seed list of "A". The client connects to A and finds that
it's a primary, and its host list is ["B"], where "B" is the
internal IP for "A". The client should remove "A" from its
list of servers and add "B" as SERVER_TYPE.Unknown,
and start monitoring "B".

The cluster type should remain ReplicaSetNoPrimary,
since server "B" is of type Unknown, and "A" is no longer
in the ClusterDescription. However, the cluster type
winds up as ReplicaSetWithPrimary.
PYTHON-525 Handle a new primary with wrong setName.

Bug fix in updated_cluster_description: if a new server is a primary of another replica set, set the cluster type to ReplicaSetWithPrimary or ReplicaSetNoPrimary, depending on whether this set's primary is known.
PYTHON-525 Better test_cluster_spec messages.

If a server or cluster is the wrong type at the end of a test, print the type's name, not its number.
Rename test to more accurate direct_connection_slave.yml.
PYTHON-525 Test direct connection to an RS member via external IP.
Convert YAML to JSON.