Need to support the ability to override "generators"
To speed up code generation when switching tabs in the XAML designer, the XAML "overrides" the MSBuild::Compile generator and replaces it with the XAML single file generator. We need to make official support for this, especially as build is out-of-proc and XAML won't be able to register a host object to get unsaved changes.
See CLangFileNode::GetXamlOverrideGenerator for more information.
The way this works is like follows:
- This adds a new string value called;
OverrideGeneratorthat is added to extension section of a generator that represents the ProgId of the override generator. - Based on its extension a file is considered as using this
OverrideGeneratorif it's generator matches the default generator. For example, in the following, XAML files marked with MSBuild::Compile are considered as using the XamlIntelliSenseFileGenerator single file generator.

- When queried, CustomTool for a file/project item returns the overridden generator - but does not ever write that generator out if hasn't changed.
The last one suspects that we might need to write a custom data source for the CustomTool property instead of just swapping at the point we go to create it.
This works now, via CPS in src\Microsoft.VisualStudio.ProjectSystem.VS.Implementation\CodeGenerators\WpfCodeGeneratorOverriderProvider.cs but probably needs to move to VsGeneratorsCacheService and be read from the registry