Use separate output directories for all JVM languages
- Introduce an outputDir on SourceDirectorySet
- Default output directory is now `build/classes/<source directory set name>/<source set name>`
- Example: Java compilation goes to build/classes/java/main instead of build/classes/main
- Adapt JDepend, FindBugs, Test and ValidateTaskProperties tasks to handle multiple class directories
- Deprecate setClassesDir/getClassesDir on SourceSetOutput
- Calling setClassesDir restores old behavior (shared output directory)
- Introduce addClassesDir and getClassesDirs on SourceSetOutput
- OSGi plugin needs a single classes directory, so introduce 'osgiClasses' task that syncs all classes to a single directory
Most of the changes to integration tests are find classes in their new location. Helper methods in AbstractIntegrationSpec
can locate class files vs hardcoding a path.
Squashed commit of sg-split-jvm-classes branch for
REVIEW-6502