Investigate into LanguageSourceSetContainer and SourceSetContainer

gradle design docs here

https://github.com/gradle/gradle/blob/master/design-docs/building-multiple-outputs-from-jvm-languages.md