Only trigger changes for changed properties

Previously, if your payload sent "firstName", but the value of "firstName" did not change, your observers would fire anyway. It seems like if we are going to do observers we should not cause observers to fire when they wouldn't if the underlying `_data` object were an `Ember.Object`. This also helps reduce zalgo when you are developing an app and wondering why observers are firing when they shouldn't be.

cc @rwjblue
Tiny nit-pick: can you name this something meaningful (to make it clearer when I end up stepping the code while in *brain-fried* mode)?  Something like `changedProperties` would make this much clearer...