Improve configuration abilities.

-CLI client no longer requires a config file if HAAS_ENDPOINT env is set

-Config file can now be configured by the caller of config.load() or through
the environmental variable HAAS_CONFIG. If neither of those are set, it will
still look for "haas.cfg" in the current directory

-Throw an exception if no config file was found by default. Otherwise, users
get unhelpful errors like:
    ConfigParser.NoSectionError: No section: 'database'

-Logging is now configured after config.load() is called to ensure consistency
between WSGI-called processes and CLI-initiated. This enables debug output
when run as a WSGI process.

-Add testing for the config management

-Add a config.reset() ability for testing. See doc note if you'd like to use it
in regular code.

-Subsequent calls to config.load() will be ignored. See config.reset() note if
you'd like to reconfigure at runtime.