(#23373) Provide a more structure config file parse
The previous parsing of the config file was a hierarchy of hashes, which
made it hard to discover what the parts were. This changes it to use a
more structured system and lays the groundwork for moving lookup
behavior elsewhere.