RUBY-543 PoolManager#refresh Causes MongoReplicaSetClient to Exceed Max Pool Size
The following does not read well but is (backwards) correct

lib/mongo/util/pool_manager.rb:147

    def validate_existing_member(member)
      if member.config
        return false
Revert "RUBY-543 PoolManager#refresh Causes MongoReplicaSetClient to Exceed Max Pool Size"

This reverts commit 284b69c7a632ee4cb7d4d683350914e736025f8f.
RUBY-543 only refresh if it is actually needed
Always get primary pool with a sharded client.

In the case of a sharded client, all of our nodes that are provided
should be mongos nodes, and thus all should be primary. The read
preference thusly is not handled by the driver, but by the mongos server
and all read operations should pass through the primary mongos.

The case where we have multiple mongos is not handled here, as the
driver does not currently support having multiple primary nodes
configured.

[ RUBY-542 ]
RUBY-542 MongoShardedClient does not support read preferences correctly
unstable-release moved to 2.4.0-rc0 where maxMessageSizeBytes changed to 48000000
RUBY-543 stop using thread local, start pruning dead threads
RUBY-543 don't just pick the first idle_socket
RUBY-543 prune on an interval vs every checkout
Spelling
RUBY-545 fix for KillCursors routing
RUBY-545 only checkin socket if it was not provided