Add unit tests for internal utility functions
Implement helper functions needed by ConfigBase
initial (WIP) ConfigBase subclass of UserDict.UserDict

This implements a lot of the functionality preceived as important,
uses reclass the sensibly merge in new data, and runs through
collecting config from defaults, user options (command line), the
environment (shell), files to load, and runtime config.

Loading files will open the file as either JSON or YAML based on the
file extension (suffix), with a default to YAML.

Saving files currently dumps the config dictionary as YAML.

Docs and tests are coming and will be used to verify this commit thru
to completion.
save WIP test script
Fix and improve how we retrieve keys from opts and shell env

* Normalize all keys, lower casing the key names and replacing - with _.
* Fix how we retrieve opts from the OptionParser-like object,
  use getattr().
* Add debug logging to env/opts key retrieval.

Do you love {} comprehension too?
Refactor how we init the logging.logger instance in ConfigBase
Make opts key retrieval more robust/correct