Alway pass the options object to the setter

This PR creates an options object if none was created by the user. This
allows for modification of options inside the setter as the object is
passed by reference.

This behaviour mirrors `Backbone.Model#set()`:
https://github.com/documentcloud/backbone/blob/master/backbone.js#L322

My specific use case is that I want to always validate the setting of a specific attribute. However, with Backbone 0.9.10, you need to pass `{ validate: true }` to `Backbone.Model#set()` in order to force validation. 
This allows the user to create a setter that makes sure the options they want are always set.