Minor: rename DiagnosticHolder -> DiagnosticSink
Prevent external change in SimpleDiagnostics and convert to Kotlin
Default implementations for some functions in Diagnostics
Introduce MutableDiagnosticsWithSuppression and use it in BindingTrace implementations

Exposes the fact that Diagnostics is in fact a mutable entity with readonly API
Update readonly view when diagnostics are modified
Allows to avoid recreating DiagnosticsWithSuppression every time getDiagnostics() is called in DelegatingBindingTrace
  which led to severe performance issues for large files with lots of diagnostics
Test mutable diagnostics