call the default functions in the context of the model
add tests exercising contextual calls
only clone plain objects and arrays
use the built-in set and get functions rather than accessing the `attrs` object directly
adjust logic per ian's suggestions
Merge pull request #2 from treygriffith/master

Call Default Functions with the Model as the context