CoralVM-Java: More refactoring, preparing compiler API for the possibility of compiling a whole module

A (source) module in Coral is basically a structured directory, containing module file, optionally sources and binary compiled files, along with possibly more nested sub-modules, either as sources, or as library specifications (interfaces, protocols).
Slightly different would be a packed module, which would be structured differently – a (compressed) directory with structure following module vendor domains plus the module file describing linked or bundled modules (CSL classed does not need to be described, just linked). A packed module might be stored in the source module as well, but does not need to be, as the packed module might be always created from the module directory.