RUBY-583: enable auth for tests
RUBY-583: add ability to run clusters with auth

This previously was failing as the ruby Process#spawn method was closing
the STDOUT file descriptor. Mongod as of (2.4.2) expects for STDIN and
STDOUT to be the first two file descriptors as the logging system
subsequently tries to reopen and reroute those hardcoded FD values.

You can read more about the issue here:

https://jira.mongodb.org/browse/SERVER-9362
RUBY-584 fixing unit tests that require a mongodb connection
minor: remove jruby gem deprecations
minor: restoring travis config from before branching changes
RUBY-583: fix for first admin user on MongoDB 2.2
RUBY-590: remove RSpec as part of cleanup
When reusing a manager after calling close and connect, make sure to re-set the associated thread_local to avoid an error
minor: pin shoulda-matchers at ~>1.0 for 1.8.7 support
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.
trivial: adding .ruby-gemset to gitignore
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.