RUBY-661 refactor cursor to accept arbitrary opts

This pull request refactors cursor to allow for arbitrary options.

I changed the options parsing to delete from the argument opts hash and then merge whatever is left in the opts with the query message.

This will let you do something like

    db.command({ :ping => 1, :maxTimeMS => 100 })

Previously, the maxTimeMS was ignored because it wasn't explicitly set in cursor.