Removed AmbiguousDescriptorDiagnosticFactory.
Replaced instanceof checks for particular diagnostic factory classes with using factory sets.
Removed UnusedElementDiagnosticFactory.
Removed RedeclarationDiagnosticFactory.
Removed UnresolvedReferenceDiagnosticFactory.
Renamed SimpleDiagnosticFactory -> DiagnosticFactory0.
Replaced constructors with factory methods.
Replaced list with immutable set.
Got rid of getText() when reporting unresolved reference.