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.
I know it's not the most intuitive name but to be consistent I would add the new methods to the existing `IResourceController` interface rather than creating a new `IResourceModification`. The dataset/package `after_create`, `before_update` ... methods are part of `IPackageController`, and `IResourceController` already has a `before_show`.