resources using processResources
This allows for IDEs to recognize the generated resources.
This also fixes an issue where sometimes running `clean build`
would cause 'java.io.IOException: Unable to delete directory',
although this fix may also be due to the new approach no longer
creating a temporary directory.
Get rid of all the Serializable mess and instead use @ Nested to
tell Gradle to look at the plugin descriptions directly.
This means that we need some annotation mess inside the plugin
description classes though. :D