Stop mucking with the semantics of debug options in CompilerInvocation.
This changes causes most of the 'g' group options to be rejected by CompilerInvocation. They remain only as Driver options.
The new way to tell cc1 what kind of debug info to emit is with "-di-kind={full|limited|line-tables}" "-dwarf-version={2|3|4}".
In the absence of any command-line option to specify Dwarf version, there is a new virtual method in the Toolchain rather than hiding Toolchain-specific logic in CompilerInvocation. This is important when the default depends on complicating factors that cc1 is not aware of.
Also fix a bug in the Windows compatibility argument parsing in which the "rightmost argument wins" principle failed.
This lets cc1 crash if you pass -debug-info-kind=foo for any foo not explicitly handled in the stringswitch. (I don't see a nice and obvious fix, so leaving this to you.)