add if statement and add passing test
trigger request event only if model extends Backbone.Events, and fix whitespace
Allow non-model object as second argument, with test.
Revert non-model sync commits.

Revert "Allow non-model object as second argument, with test."
This reverts commit 32743e6b60a9b02619cd39f1cbe00d3dd77639a9.

Revert "trigger request event only if model extends Backbone.Events, and fix whitespace"
This reverts commit 6d72e1be3568dad0556ceb438ab7d45ea29f365f.

Revert "add if statement and add passing test"
This reverts commit 2caf748651c5f927d9ce2c47723f307c5578f1ef.
Updating license to reflect DocumentCloud's correct attribution.
Fixing licensing typo.
Fix bug causing mutations while merging with nested models

Again, I'm not a huge fan of this solution to the merge + defaults problem, but
this will work until somone more clever than I figures out what to do or we
reevaluate the whole existance checking ordeal.
Don't mutate options in `add` or `set`
Force add true and remove false flags in `add`, merge optional
Added missing word to emulateHTTP comment
Fix same mutation problem with existing/non-existing mix of models
Merge pull request #2539 from fixe/patch-1

Added missing word to emulateHTTP comment
fix #2345 return a rejected promise instead of false on invalid model save
allow Backbone.Deferred to be overwritten on a framework level. Also changes the `rejectWith` calls to just `reject` since most promise implementations dont have this method
add backbone.Deferred sync tests
return a rejected promise when Model#destroy fails
functional consistency, fix global variable, refactor .done .fail to .then
destroying unpersisted model should resolve promise, not reject