Re-worked how sessions are created from a Cluster.

Abstracted Client to allow for different implementations.  Created one implementations to use sessions that connect to a single host.  Created a second implementationt that works in the previous fashion.