support for hierarchical module naming schemes

@geimer: this should fix the problem that's blocking you right now

I might need to figure out one more thing w.r.t. the devel module name before this really works for you, I'm looking into that...
w.r.t. the cyclic imports: moving or requiring `easyconfig.py` functionality to/in `toolchain.py` simply doesn't work (whether or not additional Python modules/packages are created as intermediate steps in the import graph is irrelevant);

currently, `easyconfig.py` requires functionality provided in `toolchain.py`; so we can not include/use anything in `toolchain.py` that is provided (directly or indirectly) by `easyconfig.py`

note that this also nicely fits the "separation of concerns" principle: `toolchain.py` shouldn't concern itself with anything related to easyconfigs, since it handles a totally different concept; `easyconfig.py` however needs to concern itself with module names, since they're very much dependent on what is specified by the easyconfig...

I don't see anything fundamentally wrong with the current design, but if you do, please point it out.

Right now, the `toolchain` and `module_generator` modules are "independent" of `easyconfig` (some information is fed in from `easyconfig` to `toolchain` & `module_generator`, but that's unavoidable)