implement support for init type modifiers By default types do not support additional modifiers (and will fail with an error message). However to support init modifiers the type ProjectInitDescriptor implementation class simply needs to override the withModifiers method and add handling logic in the generate method.
Currently only the java-library type supports init modifiers (spock).
REVIEW-3373: Add back BuildTypeID specific ProjectInitDescriptors - ProjectDescriptorRegistryFactory should not now about InitDescriptor details. Moved the details into the BuildType related ProjectInitDescriptor - moved lot of production code related to ProjectInitDescriptors from groovy to java - didn't merge the ProjectInitDescriptor and TemplateOperation but ProjectInitDescriptor now extends TemplateOperation. feels more natural to me than merging them into one interface - added back languageProjectInitDescriptor for dealing with basic language related ProjectInitDescriptors