-Wmicrosoft currently covers many different areas, some more useful than others. Split it into many targeted flags, so that projects can choose to enable only a subset of these warnings. This is also useful for incrementally fixing and turning on these warnings.
-Wno-microsoft still disables all these warnings, and -Wmicrosoft still enables them all. After this change, it's possible to pass -Wno-microsoft -Wmicrosoft-unqualified-friend to only enable -Wmicrosoft-unqualified-friend, and -Wmicrosoft -Wno-microsoft-unqualified-friend to enable all other Microsoft warnings.
I put all the template-related warnings behind -Wmicrosoft-template; if that turns out to be too coarse we can make that finer later on. (In practice, I haven't seen the template-related warnings fire frequently.)
We might want to tweak -Wmicrosoft-enum-value in the future, it's the only of all of the -Wmicrosoft warnings that doesn't seem useful in practice.
I think we can merge this with MicrosoftExceptionSpec, they are both about EH specification relaxations.