Replica set & read pref changes

- Allow specifying read pref on a per connection basis
- Use MongoReplicaSetClient when connecting to a replica set