allow MongoDB::BSON to decode without a MongoClient
remove BSON encoding from _Protocol
add note about code to be removed later from Collection
add _URI class
Switch MongoClient to use _URI to build connections

This replaces the long BUILD method with simple initialization based
on the MongoDB::_URI class.  The _Link class has changed to have all
parameters in the constructor, which simplifies usages.

The BUILD method loses support for replica sets, but this will be
replaced later when the cluster model and server selection are
implemented.
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.
add cluster test files
Implemented cluster test harness

This uses YAML files in t/cluster to execute the cluster monitoring
spec tests.
_Cluster: rename no_primaries to has_no_primaries
clarify _Cluster BUILD errors are internal errors
PERL-378 implement cluster and server model
PERL-406 Allow count methods to work with query hints