Allow  Ruhoh::Parse.data_file to accept absolute path.
Move config and cascade logic to more single-purpose classes.

The config is now capable of being merged together down the cascade.
Defaults can now be set in the system-level config.json.
Remove ruhoh.setup in favor of passing into initialize.
Use delegation technique to better represent config as a Hash.
Don't track config files in collections to allow for in-collection config.
Reorganize main code into separate files.
Config hashes all have to be deep-merged.
Remove dash collection and move functionality into root cascade levels.

The dash shouldn't be a public collection since it's only used for internal UI mode.
page_not_found UI should be in root cascade so it can be overloaded.