This patch introduces additional infrastructure necessary to accommodate DiagnosticOptions.
They are unique in that they are parsed in -cc1, but also in the **driver** (`driver.cpp: CreateAndPopulateDiagOpts` & `clang::ToolInvocation::run`).
To preserve the current behavior, we need to be able to selectively parse:
* all options (for -cc1),
* only diagnostic options (for driver).
The idea is that the TableGen backend checks whether the `Keypath` of option record starts with `DiagnosticOpts.`. If that's so, the backend emits the definition inside a macro prefixed with `DIAG_`, making it possible to distinguish between regular and diagnostic option definitions.
Depends on D93700 & D93701.