New plugin interface: IResourceModification

This adds a new plugin interface ``IResourceModification`` which allows extensions to tap into resource modifications at the three major points (creation, update, deletion). In each case extensions can add pre-, and post-processing for these entry points.

This builds upon @seanh's ``IResourceUpload`` interface which kind of did the right thing, but in a smaller and more focussed setting, so it expanded on it and in the end consumed it in the new interface so that almost nothing remains of @seanh's work (sorry @seanh).

This new plugin interface can replace the current ``IResourceUrlChange`` but I leave it be since I feel there are others than me who should make the decision whether it can and should be deprecated.