Persistent setting groups allow settings that are not declared to
survive normalization and other operations that would normally remove
any unknown keys in a group.
Calling normalize or get_namespace with persistent=False will remove
unknown keys even from persistent groups.
Currently the only way to retrieve the defaults for a config and
preserve unknown keys is to manually get the defaults and update each
existing group with the default values.
Used Generic for better typing
Backported BooleanOptionalAction for tests on Python 3.8
Remove merge support in normalize_config
Add test to validate that the example works