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...
FIxed the remark w.r.t. the decorator by enhancing the module naming scheme API: 

* added a `REQUIRED_KEYS` constant that *must* be defined by the module naming scheme implementation; this is a disruptive change, i.e. existing custom module naming schemes will have to take this into account with (the future) EasyBuild v1.14.0; alternatively, the naming scheme can redefine the `is_sufficient(self, keys)` method to return `True`/`False` based on the provided set of available keys (easyconfig parameters)
* added a `requires_toolchain_details` function that should return `True` or `False`, indicating whether the naming scheme requires toolchain details (e.g. which compiler, MPI, etc. the toolchain contains); this basically boils down to whether the `det_toolchain_*` functions provided in `easybuild.framework.easyconfig.tools` are used (this can not be detected automagically easily imho, since the `import`s don't **have** to be top-level)