Implement StorageItem plugin system. 

Includes an initial resize plugin that resizes 
and uploads a few reduced size images to the same
storage location as the original image and records
them in metadata.
Change StorageItemPlugin to be an interface instead of an abstract class.
Rename to StorageItemListener and chance process(…) to afterSave(…).
Merge branch 'release/2.0' into feature/storageitemplugin
Renames StorageItemImageResizePlugin to ImageResizeStorageItemListener so that it's more consistent with the StorageItemListener interface.
Removes trailing spaces.
Guards against NPE in case listeners is null in AbstractStorageItem.
Fixes ClassCastException sometimes being thrown when using DimsImageEditor with the new ImageResizeStorageItemListener.