Fixes #7566 - added support for dependeces among modules

Do not merge before docs and tests are added.

In module config YAML add `:require:'  <module> or list of modules e..g.:
```yaml
:katello:
    :enable_module: true
    :require: 'foreman'
```
Support for circular deps detection included
Can you please catch the exception when the modules are loaded and re-raise a hammer specific one? This can hypothetically cause problems in future when we decide to use tsort somewhere else.