OAK-533 - Define behaviour for and implement mix:lastModified

I've created a node-type abstract commit hook which can be used to intercept changes to nodes having a certain primary type or mixin type.

Furthermore, I've implemented such a hook for the `mix:lastModified` mixin. For any subgraph change of a node with the mixin `mix:lastModified` (including changes to the node's own properties), the `jcr:lastModified` and `jcr:lastModifiedBy` properties are now automatically updated.