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
Update PATCH/xhr check so that IE9 works

Fixes #2476
Merge pull request #2550 from jerryorr/master

Update PATCH/xhr check so that IE9 works
Fix #2538 - Only transition if both pushState and hashChange are requested.
Merge pull request #2565 from braddunbar/hashchange-false

Fix #2538 - Only transition if both pushState and hashChange are requested.
Fix #2569 - Add repository to package.json.
Do not load the hash as a fallback.
Fix #2554 - adding clarification about route behavior
Merge pull request #2572 from braddunbar/no-hash-fallback

Do not load the hash as a fallback.
Document listenTo's implicit 'this' context.

That the context to the callback in listenTo is this, is only
documented as issue discussions on github. This adds explicit
documentation of that semantic.

See Issue #1999
Fix a small typo in patch.
Tweak context comment.
Fix #2535 - Update changelog with Model#set changes.
Merge pull request #2591 from braddunbar/model-set-changelog

Fix #2535 - Update changelog with Model#set changes.
Avoid double _validate calls in _prepareModel