RUBY-587 Initial Mongo::Client Implementation

This is by no means finished, but due to dependencies in other areas I'd like to bring this into master and move around a bit. The basics that are here now are:

Instantiating a new client:
```ruby
Mongo::Client.new([ "host:port" ], read: :primary)
Mongo::Client.new([ "host:port", "host:port" ], database: :testdb)
```

Switch client's current database:
```ruby
client.use(:test_db)
```

Getting a new client with extra or different options:
```ruby
client.with(read: :secondary)
```

Get a collection by name:
```ruby
client[:users]
```