refactored clusters to include a new ClusterFactory as well as updated ClusterSettings and more reuse, plus bug fixes for dual primaries, connection pool problems, and queries to secondaries.