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.
WIP tests for ConfigBase
save WIP test script