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...
A `KeyError` may occur when a dependency specification that only provides `name`, `version`, `toolchain` and `versionsuffix` is provided to the module naming scheme implementation (e.g. when it also requires `moduleclass` or somesuch).
That's an acceptable error, because (usually) this can be resolved by obtaining a full parsed easyconfig file matching the dependency specification (unless it's a non-existing key of course, but in that case the 2nd try will fail too). Any other errors can't be resolved, and must be a bug in the naming scheme implementation.

The AttributeError was for a similar reason, but is no longer needed (an earlier version of the `det_toolchain_*` functions required to pass a `Toolchain` instance, i.e. `ec.toolchain`, but I changed that).

I'll clean that up and add a proper comment to explain why `KeyError` specifically.