added an extensible configuration API. This necessitated adding in an IClusterFactory and an ISessionFactory as well.