Allows deep access of config settings via a dot-delimited materialized path.
Environment variables may also be set to corresponding deep keys using double
underscores in place of the usual period delimiter. E.g:
clothing.jacket => CLOTHING__JACKET
This fixes the aliases in config files bug. Whenever we register an alias, if there is a value in
the config (or defaults or override) for the alias, we move that value to the new "real key".
Added a test for the bug, which fails without the changes and passes with the changes.
This also fixes a bug in Hugo, where specifying "Taxonomies" in your config file doesn't get recognized,
because Hugo aliases "Taxonomies" to "Indexes" which means that when the code does a Get("Taxnomies") it
got translated to Get("Indexes"), which didn't exist in the original config map.