Including package requirements and class requirements inside the module

I think the package and module requirements should be inside the module, warning the user of which pre-requirements are not being met. I had difficulty trying to understand why the module was not working, until I saw your vagrant-gitlab example.