implement _Cluster, _Server and Role::_Client classes

These provide a first-draft of the cluster monitoring data model and
scanning algorithm.  Given a MongoDB::_URI, they build a model of
cluster membership that will be used for active monitoring and server
selection.

Periodic monitoring and selection are not yet implemented, however.