Genericizes the yaml+environment versioned configuration parser

The purpose of this change is to disconnect the configuration parser logic from the exact structure of our config file. Mappings from struct fields and map values to environment variables should be automatic now, which removes the need for updating the parser as the configuration file/structure changes.

Registry configuration parsing now uses the new parser logic with a single version declaration and an environment prefix of "REGISTRY"