Materialized path key traversal.

Allows deep access of config settings via a dot-delimited materialized path E.g.

  viper.GetString("clothing.jacket") => "leather"

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