enhance custom module naming scheme implementation

- add configuration option for module naming scheme
- implement module naming scheme as a (Python) module in the easybuild.tools.module_naming_scheme package (with a class derived from 'abstract' class ModuleNamingScheme)
- implement default EasyBuild module naming scheme in class EasyBuildModuleNamingScheme
- enhance unit tests to test both the default and a (simple) custom naming scheme