Add event hooks for update, create, save, and destroy to the model definition

Improved event hooks. Includes hooks for update, create, destroy, and save. Tests added for each.

Possibly a load event would be useful in addition, but it's not included in this changeset.