Strategy for connecting to a read_only replica is configurable

Strategies are classes that respond to self.choose(db, config)
where config is the configuration hash of the current physical shard.