Extract java and groovy compilation into separate language subprojects

- ‘language-java’ contains JavaCompile task, compiler infrastructure and associated classes
- ‘language-groovy’ contains GroovyCompile task and associated infrastructure
    - depends on ‘language-java’
- ‘language-jvm’ contains ProcessResources task and some common JVM language infrastructure