File Based Configuration

This change adds a class which gives us the ability to load configuration data from files instead of environment variables.  The configuration files a stored in the YAML syntax instead of json because:

* The syntax supports comments which the default json spec does not
* It's more human readable and requires little knowledge about the syntax
* It differentiates internal data dumps (json) from configuration files
* You can install YAML without the C-extension if necessary

These changes are based on some older code from a while back.  It didn't take long to convert the code over so if it's missing something simple or needs to be changed we should feel free to do so.