Allow options keys to be Strings in collection.update method 

I was trying to create an update query like this:

```ruby
collection.update(
  {'field' => value}, 
  {'$set' => {'field' => other_value}}
)
```
This was only updating the first matched element but I wanted it to modify any matched document. 
I found in the mongodb documentation that I needed the option `multi: true`.

I guessed that the ruby driver would accept a third argument for the options, so I tried it:

```ruby
collection.update(
  {'field' => value}, 
  {'$set' => {'field' => other_value}},
  {'multi' => true}
)
```

But this **dont't work**, and it also don't raise any error, it just only updates the first matched document.

It realized only after browsing the source code that `update` options only recognize symbols, which, in this case, was not intuitive given that the other keys `'related_worlds.world_id'` and `'$unset'` are Strings.

I think allowing those options to be either Strings or Symbols will remove friction when using the driver.


### It would be better to ...
use something like [ActiveSupport HashWithIndifferentAccess](http://api.rubyonrails.org/classes/ActiveSupport/HashWithIndifferentAccess.html) all around the place, but this simple change would improve at least the experience with the update method.