RUBY-589 Implement new Cluster Model

Simple and straightforward cluster as we discussed. Only provides a `nodes` method to get a list of all candidate nodes (nodes that can be operated on), and an `add` method for auto-discovery to be able to add a newly discovered node from an `ismaster` command to the cluster.

Node will have the threaded healthchecks encapsulated within it, there's no need to actually have cluster receive any status updates - it only cares when someone wants a node list.