REF: parse the configuration file instead of exec'ing it.
REF: replace config.default dict by an actual Configuration object.

While this object still allows for getting attributes through string, we
use proper names so that we can progressively remove stringly typed API.
REF: configuration is not global anymore.

The full test suite passes, but this will likely break some corner-cases
in both enpkg and Canopy.
ENH: put back a global get_auth that reads the default enstaller4rc configuration.
ENH: print meaningful message instead of crashing when auth details are invalid.
ENH: create a default config file if not found as early as possible.

The goal is to gave a default config file even if auth fails so that
people can easily configure a proxy.
BUG: fix missing/invalid imports.
ENH: don't try to guess when to use EPD_auth vs EPD_username anymore.

When creating a Configuration instance, we now detect whether we should
use keyring or not, and behave accordingly instead of second-guessing
from EPD_auth/EPD_username values.

Next step is to get away from EPD_auth/EPD_username completely (except
for backward compat).
REF: remove EPD_auth/EPD_username from internal config state.

We are still handling it when parsing config file of course, and expose
them as properties for similar reasons. We may want to make those
properies read-only, though.
BUG: fix 2.7-ism.
REF: remove ugly use of locals.
REF: use print as a function in config.
TST: add basic test for print_config.!
REF: remove unused import.
STY: pep8 fixes in enstaller.config.
TST: add tests for keyring modes in Configuration.
TST: a few low-hanging fruits for Configuration setters.
TST: add a test to ensure get_auth fails if no auth is configured.
TST: ensure _change_auth works in no keyring mode.
TST: test proper error handling for invalid/unsupported syntax in config file.