Refactor and add deletion of diags if a doc is closed

Added a new static class, DiagnosticsFinder, that DiagnosticTagger uses to trigger diag processing. DiagnosticsFinder uses ClangServices to get the diags, updates the error list, and returns the diags back to the tagger.
ErrorList subscribes to document close, and clears diags from the closed doc in response.