Change and breaking test to check saving values set by .set()

Before when you'd create new objects and save them, it would only pull from properties, meaning it would only save properties passed into the constructor.

Now it also takes in unsaved values, allowing you to use a combination of the constructor and .set()
Use deepExtend when combining unsaved_vals and properties.

@_unsaved_values is already a deep object, so no need to use flatToDeep
Factor out common assert code + update comment
Merge pull request #20 from Clever/create-using-unsaved-values

Change and breaking test to check saving values set by .set()