Implement soft reset of the diagnostics engine.
Suppress warnings coming from system headers.
Don't recreate the diagnosic client, just set it to the tweaked instance.
Set the ignored diags before the driver does parse from args.

This allows the driver to override our custom diagnostics if the user wants any
special treatment.
Fwd declare the clang::DiagnosticsEngine.
Use better, more accurate include.
Reduce includes.
CXX consistency.
Do not leak the diagnostics engine.
Simplify.
Escape -x flags passed in as invocation.
Rename the class to smth more meaningful.
Move renaming.
Access sema internals and revert the list of unused decls.
We need internal isystem.
Increase verbosity of the output
Cosmetics.
The CompilerInvocation is the owner of the DiagnosticOptions, all the rest point to them.

It used some default diagnostic options, which are different from the ones that
come from the driver passing the invocation options.
Use the proper arguments to remove items.
If -verify specified don't apply any custom diagnostic mappings.