initial lmod support

This finished the work by @dmlb2000 in #616.

Next to minor cleanup, it switches to given preference to `modulecmd` instead of `lmod` when both are available in the `$PATH.

It has been tested that this full patch doesn't break `modulecmd` functionality. Further testing and enhancing of `lmod` support will be done on top of this.

It also adds @dmlb2000 as an author in the `modules.py` module.