Append appends newConfig to oldConfig and returns the result. Appending one
config to another is accomplished by iterating over every field in the
config structure, appending slices, recursively appending structs, and
overwriting old values with new values for all other types.
Parse parses the raw config into a types.Config struct and generates a report of any
errors, warnings, info, and deprecations it encountered. Unlike config.Parse,
it does not attempt to translate the config.