Overridden "outFileName" breaks Java directory layout for Maven-like projects.
I'm generating code for Java and Ruby currently, while Ruby is more for tests and debugging and Java is what I focus on and need in some other Java-app. As an Eclipse-user, I started to create a project following their default layout with one `src`-directory containing the Java code needed to compile. To store my files for Ruby, I simply added another child directory and configured Eclipse to ignore its content. This looks like the following:

    src/org/example/parser
    src/org/example/parser/ruby

I'm starting to move to Gradle and would like to follow their best practices for directory layout, which from my understanding translates the old layout into the following:

    src/main/java/org/example/parser
    src/main/ruby/org/example/parser

That works pretty well for Ruby and C# already, but not for Java, because for [Java](https://github.com/kaitai-io/kaitai_struct_compiler/blob/eee30fdd21d541c6a10d89e4e435f7a60b3c3a24/shared/src/main/scala/io/kaitai/struct/languages/JavaCompiler.scala#L47) and [Go](https://github.com/kaitai-io/kaitai_struct_compiler/blob/eee30fdd21d541c6a10d89e4e435f7a60b3c3a24/shared/src/main/scala/io/kaitai/struct/languages/GoCompiler.scala#L32) the compiler is overriding output file names to contain the additional sub directory `src`:

    override def outFileName(topClassName: String): String =
      s"src/${config.java.javaPackage.replace('.', '/')}/${type2class(topClassName)}.java"

This leads to the following directories, which is non-standard and makes keeping the same directory layout for all languages as much as possible unnecessary difficult:

    src/main/java/src/org/example/parser

In my opinion this is even unexpected behaviour compared to other languages and their output, because that `src`-thing doesn't really belong to the file name generated per language and could easily be provided by the user instead. Removing it OTOH is impossible for me without additional scripting or else.

**So how about removing that additional subdir and really only use what the user has provided?**

Yes, that breaks existing usages, but in my opinion is worth it to support more flexible directory layouts of users.