Improve define modules

Improve how to define modules (issue #9). This PR rewrite the modules structure to make it easier to define them. Modules can be defined now by calling `mls-module-define` function. The shared code has been moved to `mls-module` and replaces the old `mls-common`.