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...
this looks out of place. can this be moved to `easybuild.tools.toolchain.utilities`? 
the code here should be no more then
```
if not self._toolchain:
    self._toolchain=get_toolchain(self['toolchain']['name'],self['toolchain']['version'],self['toolchainopts'])
return self._toolchain
```
also, why again is the `_initial_toolchain_instances` required? if it was only for the unittests, add it (if you move the code, the explanation is not needed though)