Wait for replset optimes to catch up to the primary when testing

If we don't wait for the optimes to catch up and we do a force
stepdown, the old primary will just reelect itself, which doesn't make
for a great test of failover behavior.

This way, since the replset is caught up to the primary, there's no
need to pass force: true during the stepdown. We do need to bump the
timeout, though - 5s isn't necessarily enough for the nodes to
converge on a new primary.
Skip nodes in state REMOVED when looking at current replset state

REMOVED nodes don't have the current replset configuration, so can't
pick out which nodes are primaries/secondaries.

This is needed if the first replica server is removed from the replset
during testing.
Update edge case tests to work with the current framework
RUBY-661 Change server op timeout code to 50
RUBY-661 Change name of max_time and update tests
RUBY-689 defaulting MongoClient#add_auth to nil

This is another private API in the client that wasn't correctly marked as such and when we added source to the method signature without a default value we broke anyone who was making use of this API.

This fix corrects that issue as well as a small correction to some of the documentation surrounding this functionality.