Route typechecker reporting through context
Rip out reporting indirection from CompilationUnit

The cleanup in the previous commits revealed a ton of
confusion regarding how to report an error.

Essentially, there are three ways to report:
  - via typer.context, so that reporting can be silenced (buffered)
  - via global.currentRun.reporting, which summarizes (e.g., deprecation)
  - via global.reporter, which is (mostly) stateless and straightforward.

After the refactor, these are the ways in which we report (outside of typer):
  - reporter.comment
  - reporter.echo
  - reporter.error
  - reporter.warning
  - currentRun.reporting.deprecationWarning
  - currentRun.reporting.incompleteHandled
  - currentRun.reporting.incompleteInputError
  - currentRun.reporting.inlinerWarning
  - currentRun.reporting.uncheckedWarning

Before:
  - c.cunit.error
  - c.enclosingUnit.deprecationWarning
  - context.unit.error
  - context.unit.warning
  - csymCompUnit.warning
  - cunit.error
  - cunit.warning
  - currentClass.cunit.warning
  - currentIClazz.cunit.inlinerWarning
  - currentRun.currentUnit.error
  - currentRun.reporting
  - currentUnit.deprecationWarning
  - currentUnit.error
  - currentUnit.warning
  - getContext.unit.warning
  - getCurrentCUnit.error
  - global.currentUnit.uncheckedWarning
  - global.currentUnit.warning
  - global.reporter
  - icls.cunit.warning
  - item.cunit.warning
  - reporter.comment
  - reporter.echo
  - reporter.error
  - reporter.warning
  - reporting.deprecationWarning
  - reporting.incompleteHandled
  - reporting.incompleteInputError
  - reporting.inlinerWarning
  - reporting.uncheckedWarning
  - sreporter
  - typer.context.unit.warning
  - unit.deprecationWarning
  - unit.echo
  - unit.error
  - unit.incompleteHandled
  - unit.incompleteInputError
  - unit.uncheckedWarning
  - unit.warning
  - v1.cunit.warning

All these methods ended up calling a method on `global.reporter`
or on `global.currentRun.reporting`.

Clean up TypeDiagnostics: inline nearly-single-use private methods.
Remove top-level methods from Reporting

Modularize Reporting a bit so it can be used in Variances.
Encapsulate deprecation warning message.
Cleanup AbstractReporter