Nested Backbone.Model support

When working with nested Backbone models, I ran into a situation where DeepModel was setting changes directly on nested models after fetch.  The result was that the backbone model itself had attributes on it.  Here's the scenario:

Fetch -- HTTP GET returns:
{
foo: 'foo'
}

------

{
_changing: false
_events: Object
cId: "c37",
clear: function () { [native code] }
...
foo: "foo" // Set right on the model, not on the attributes
...
url: function () { [native code] }
values: function () { [native code] }
}

In order to fix this, I made DeepModel check if the object being modified is a backbone model and using that object's getters and setters instead of just result[attr] = value.  

In addition, there is support (and additional tests) for:
-  Models within models within models (etc)
-  Passing options from DeepModel's set into the child model's set (e.g. silent).

If there are any other changes I should make, let me know!  Should be pretty well unit tested