RUBY-686 using set for auths to fix issues with logout

- Switching MongoClient#auths to be a Set rather than an Array (still
Enumerable) so that we can fix an issue with logout and be a little more
intelligent when applying auths to a given socket.

- Consolidated requires for 'set' and 'thread'
RUBY-697 Support nolock option in DB#eval