Consistent after save and updateAttributes

-  Ensure consistent behavior in ActiveRecord::afterSave() (fixes #4012)
- changed updateAttributes to be more simple update (fixes #3233)
Note that this class is not named after an event because it represents the data for AFTER_INSERT and AFTER_UPDATE.
There is no sense in creating two exactly equal classes for this.

I see it this way:

1. Event names are represented as strings
2. Event classes represent the data transported with an event, we have a base class for simple events and extended versions of the class for events that transport more data.

Event classes are not there to represent the event as a whole, they just carry the data so there is no need for them to be named after the exact event.