Changed ConnectionPool to ConnectionProvider. DefaultNode now opens and keeps its own connection for healthchecks.
changed Connection to ConnectionBase and added an IConnection interface.
added interface for IConnectionProvider and change ConnectionProvider to ConnectionProviderBase.
gave proper names to DefaultConnection and DefaultConnectionProvider.
changed Node to NodeBase and added INode.
Changed DefaultNode to StatusCheckingNodeFactory (still need a better name) and added INode with a change from Node -> NodeBase.
removed the INodeManagerFactory abstraction.  This belongs in the public API.
refactored MultiNodeManagerSettings and added ReplicaSetNodeManagerSettings.
moved NonDisposingNode into common place for code reuse and renamed it DisposalProtectedNode.
Removed NodeAddress in preference of DnsEndPoint. Refactored the factories to only use DnsEndPoint and let the TcpConnectionFactory do the resolution.  Now need a simple Dns cache.
added in a cache for Dns resolution.
fixed up some tests that were broken.