[compiler] support for automatically generating package names from directory structure
Example/testing repository, where this can be demonstrated and where solution can be tested: https://github.com/OK-DMR/dmr-kaitai

Currently I have [bash script rebuild-all.sh](https://github.com/OK-DMR/dmr-kaitai/blob/master/rebuild-all.sh) which does roughly this:

  1. Enumerate target directory (serving as base package)
  2. Recursively find `.ksy` definitions
  3. Convert path eg. `okdmr/kaitai/homebrew/homebrew2015.ksy` into commands
    1. `cd okdmr/kaitai/homebrew/`
    2. `kaitai-struct-compiler -t python --python-package okdmr.kaitai.homebrew homebrew2015.ksy`
    3. `cd ../../../`
 
This is something I believe could be provided in `kaitai-struct-compiler` natively

**Target environments**
  1. All operating systems
  2. Languages that support packages or namespaces

Effectively reducing the need to explicitly provide one of these
```
  --go-package <package>   Go package (Go only, default: none)
  --java-package <package>
                           Java package (Java only, default: root package)
  --dotnet-namespace <namespace>
                           .NET Namespace (.NET only, default: Kaitai)
  --php-namespace <namespace>
                           PHP Namespace (PHP only, default: root package)
  --python-package <package>
                           Python package (Python only, default: root package)
  --nim-module <module>    Path of Nim runtime module (Nim only, default: kaitai_struct_nim_runtime)
```

Implementation todo, AFAIK

  - [ ] Add option `-s / --source-directory` that would be incompatible with current `vararg <file>` to specify the **base path** for recursive ksy search and package name generation
  - [ ] Add option `-r / --recursively` to traverse specified source directory and look for .ksy files
  - [ ] Add option `--directory-based-packages` that is incompatible with current `-- package/namespace/module` config arguments, which would convert (in language-specific way) the directory path to package/namespace/module
  - [ ] Ensure that, in language-specific way, if resulting package is not the **base package** output file should be placed in subdirectory (either the source subdirectory or ensure the subdirectory in **-d / --outdir** target)
  - [ ] If **relative meta import** is used, import package path shall be again considered with regards to **base path/package**


*Note: i'm not familiar with Nim and Go, but I included those in this ticket, if in some language this idea is not "doable" i shall re-word this comment, just let me know*