This gets a pretty solid UI in place for editing clang-tidy files. It displays all the checks, descriptions of most of them with more to come later (it's a bit tedious), and allows disabling / enabling individual checks or entire groups of checks using a familiar UI such as the one in the C++ project system that supports inheritance or explicit overrides.
It supports serialization to and from Yaml using the NuGet package YamlDotNet, and depends on an additional NuGetPackage called BrutalStrongNameSigner which is required in order to strong name sign YamlDotNet (otherwise our extension can't load it).
Unfortunately implementing an inheritance-based property system such as Visual Studio's is *highly* non-trivial, and so this patch turned out much larger than I originally anticipated.
If need be, I can try to submit a skeleton patch that does nothing but add a blank options page first, so that this patch is not muddled up with the actual content.
I'm not sure who the best C# reviewer is around here, so adding a few people.
Should the plugin be placed inside clang-tidy directory?