Cleanup event listeners on destroy

When a Model is destroyed, it may still be listening to events.
We should `stopListening` to those events to prevent memory leaks.
allow Model#save with patch: true to take different attrs. Fixes #3232
test for attributes set on the model correctly in patch save
Merge pull request #3236 from akre54/save-and-patch-diff-attrs

Allow Model#save with patch: true to take different attrs
Merge pull request #3222 from emorikawa/master

Prevent memory leak by `stopListening` on Backbone.Model `destroy`