Diagnostics tablegen churn

Hi, everyone. Is there a resaon why editing any of the Diagnostic*Kinds.td files causes them all to be regenerated? It seems that everywhere that uses them now does so via includes, and the enum values aren't dependent on one another (though as a side note, the hard-coded limits in DiagnosticIDs.h scare me a little).

It seems like we could get away with just regenerating the one diagnostic file (plus the base Diagnostic.td), saving a fair amount of rebuilding churn. My Make-fu isn't very strong (especially translating to CMake as well) but I can take a stab at it if there's no reason this can't change.