RUBY-607 Fix nearest read pref option
minor: adding pry to the gemfile and creating a development group

* removing unnecessary/bad rubygems reference
* creating a development group for pry-nav and pry-rescue
* adding requires for pry unless not available
* setting travis config to exclude development group
Minor cleanup in pool manager
Cleanup rs and sharded clients of superfluous mutexes
RUBY-578 Put lock around mutation and reading of members in pool managers
RUBY-578 Set max sizes as an attribute on a node
RUBY-578 Only use one connect lock in rs and sharded clients
mongos expects read preferences to be strings, not symbols.

This should actually fix RUBY-542. Without this, using read
preferences with a mongos cluster that's backed by replica sets will
error with

  wrong type for field (mode) 14 != 2

This is raised by _extraReadPref in dbclient_rs.cpp, when it does:

  const string mode = prefDoc["mode"].String();

BSON type 14 (0xE) is the (deprecated) Symbol type, and type 2 is
String, so this indicates that mongos is getting a symbol when it
expects a string.

The sharding tests passed either way because they don't actually
construct replica sets for the shards, and _extractReadPref is only
used by DBClientReplicaSet. Thus, the $readPreference field passed to
mongos is completely ignored by the test mongoS, and not even parsed.
cleanup: refactor, making check_is_master a public instance method
RUBY-560 fixing issue with check_connection_health with auth enabled

Calls from `ShardingPoolManager#check_connection_health` to `client['config']['mongos']` were failing when auth was enabled. Access to this collection requries an authenticated admin user.

In addition, the previous approach of comparing the seed list to the contents of the `mongos` collection was fundamentally flawed since MongoDB keeps every `mongos` that has ever connected to the cluster in that collection (even long gone, inactive `mongos` instances).

We're now simply calling `isMaster()` on each mongos to confirm that 1) it is active and reachable and 2) it is indeed a `mongos`. If either of these conditions are not true, we set `@refresh_required` to true and call close on the member.