Do not trigger didSetProperty if value is unchanged.

Also, fix determination of oldValue (previous a falsy value would not be
found in `this._attributes`).
Merge pull request #1677 from rjackson/only_set_different_values

Do not trigger didSetProperty if value is unchanged.