I'm forking the preset API part of #371374: Add ImageCache UI Core off into its own issue so we can focus on it and then look at getting a UI in as a separate patch. Here we'll focus on the actions, presets and generation of images.
I've put the code for this patch into a github repo because it makes collaboration much easier. If you'd like to work on the patch you can either fork the project or ask me for commit access. I'll be exporting the patch occasionally for review purposes once it's a bit more stable.