Introduce a memory cache for the results build up by getModules
procedure. Done in order to reuse these results if next searches are
identical, which happens in whatis/search context.
As a side effect a module resolution cannot be changed by the evaluation
of a modulefile sharing same root name, as the initial module resolution
to find this modulefile to evaluation has cached resolution result.
This side effect should not however impact more than the project
testsuite as module resolution should not be defined within a modulefile
but within modulerc files.
Macros within modulefile descriptions:
@M@ Name of the module file
@V@ Version of the module file
@P@ Modulefile path
@S@ User shell
@ST@ User shell type
@U@ User level