Extra require slipped in from another branch
Split apart config loading / processing

Omnibus::Config now extends Mixlib::Config, which simplifies
overriding / customization of the configuration parameters.

Additionally, consumption of configuration information is now
separated from acting upon it, which allows us to act upon it in the
CLI tool more intelligently.

Note: `Omnibus.configure` still exists, but is now deprecated.
Furthermore, it no longer takes a block, which means that it can no
longer be used to override configuration parameters.
Let project_root be configurable

The original `Omnibus.project_root` worked out to the directory the
omnibus CLI tool is invoked from, which may or may not be the same as
the actual project root.
Extract #project_files and #software_files

These are now properly resolved against the project_root.
Update CLI for new configuration process.

A configuration file (if present) is loaded, modified by relevant CLI
options, and then processed to generate the project dependency tree.

The check for the validity of the given path is now deferred until
after the configuration is fully processed, since this is actually a
configuration-dependent check.
Removed Omnibus::NoConfiguration

Not needed anymore with Mixlib::Config-based approach.
Update InvalidS3Configuration message

Updated to reflect new Mixlib::Config-based approach, as well as
giving a nod to better security practices around sensitive S3
information (h/t @danielsdeleo)