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...
we can't assume that the module for the toolchain is present when we need to determine a module name for a given easyconfig (which may require the `det_toolchain*` inspection functions, depending on the mns)

so, we need to make sure we can obtain easyconfigs to determine the name/version of the toolchain elements, and hence this can't be done in the `toolchain` namespace without requiring functionality from `easyconfig`

I've fleshed out these into their own module now (in which it is clear that it can't be moved into either `toolchain` or `easyconfig` namespace, since it requires functionality of both)