Remove a lot of duplication in configuration files by supporting nested dictionaries in the CheckOptions entry
For Example to set ParameterCase, VariableCase and MemberCase in readability-identifier-naming this new syntax is supported
CheckOptions: readability-identifier-naming: ParameterCase: CamelCase VariableCase: camelBack MemberCase: UPPER_CASE
This maintains backwards compatability with the old method of input:
CheckOptions: readability-identifier-naming.ParameterCase: CamelCase
And:
CheckOptions: - key: readability-identifier-naming.ParameterCase value: CamelCase
This new syntax is also able to be interleaved with the current dictionary type input.
CheckOptions: readability-identifier-naming.ParameterCase: CamelCase readability-identifier-naming: VariableCase: camelBack MemberCase: UPPER_CASE
Typically the current dictionary syntax is meant for checks with only one configured option
The -dump-config option has been updated to use the grouped syntax for checks with more than one option(while also having a deterministic ordering)
This function has become very large and hard to read. Would it be possible to split it into subfunctions so it's easier to follow? I think it would make sense to create 1 function per different format supported (I believe with this patch there's now 3 different formats supported).