Added ReplicaSetGhost ServerType.
Changed TestServer to obey ClusterableServer contract, and removed unnecessary server description state change from MultiServerCluster
Added test for adding passives to the cluster
Removed special handling of replica set version.  We ignore non-primary's host lists if there is a primary that we are connected to. We also never remove servers based on a non-primary's host list.
Instead of increasing the retry frequency for an unreachable server, always use the same frequency, and force an attempt to connect only when there is a failure to find a server that matches the server selector.
Remove DBPort.finalize() method, as there is already code in place to ensure that it is closed.
Avoid turning the active query into a string unless it's needed.
Avoid possible NPEs in JMXConnectionPoolListener.
Delay creation of DBDecoder in DBPort until after the socket is successfully opened