Detection of changed properties

Added the ability to check changed properties. This was particularly useful to us when seeing if the password was updated updated on a user's `beforeUpdate` event. With this code, one could nicely check:

```js
        if (this.dirty('password')) {
            bcrypt.hash(/* ... */);

        }
```

Without use of additional metadata or manually hashing when the password is updated.