config: Tidy default handling and comparisons in tests
This patch tidies how defaults are handled in the config, using a new logic to allow "overriding" one config (the default) with another (the user supplied). It also improves how the comparisons are done in the tests, using the more convenient "github.com/google/go-cmp/cmp" package, which also prints nice diffs on errors. This is in preparation for a future path where the override mechanism will be reused.
Showing with 101 additions and 61 deletions