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
Is the "improper installation" the only case when this exception is raised? I'd like to find more informative message.
It would be good to add `log_full_error`