This patch is one of the steps trying to optimize experience
of header insertion in code completion.
IWYU supports no_include pragma that helps user to get rid
of specified headers in main file.
The patch consists of two parts: Code completion part that
prevent auto insertion if the header to be inserted is under
the guard of no_include pragma. The other part is for include
cleaner, which emits diagnostic message pointing out that user
is including no_include headers.
A possible workaround for clangd/clangd#1481.
I'm not sure it is worth to make a dedicated function for this marginal pragma, I think we can treat it as an unused-include case, and we can move it to issueUnusedIncludesDiagnostics.