More robust use of context reporting

 - when warning must not be suppressed, use `reporter.warning`
 - don't (implicitly) rely on `reporter.warning` being silent after typer
   --> don't do pure expression check after typer
Make more explicit that TypeError is being thrown.

`typer.TyperErrorGen.MacroCantExpandIncompatibleMacrosError`
throws because the type checker it uses is at `NoContext`,
which throws by default... This default is bad and is going to change,
so make this code independent of that future sanity.

TODO: don't use mutable state to determine position for the error
Reduce Context iface: inline trivial forwarders
Reduce Context iface: inline complex forwarders
Reduce Context iface: encapsulate buffer manip
Reduce Context iface: inline internally
Reduce Context iface: make private
Reduce Context iface: remove dead code
untangle ambiguous errors

now that all reporting mode manipulators are private to Context,
let's untangle this mess:
  - every setReportErrors gets a corresponding setAmbiguousErrors(true)
  - every setBufferErrors gets a corresponding setAmbiguousErrors(false)
  - every setThrowErrors  gets a corresponding setAmbiguousErrors(false)

doing this to eventually get to a strategy-based approach to reporting,
where the reporting mode is captured in the reporter being used,
with as little mutation as possible to capture more invariants
(would like to stop throwing TypeError eventually and only have two modes:
buffering reporter, regular reporter)
AbsAmbiguousTypeError
Remove `def error(pos: Position, err: Throwable)`

It was used once.
rootContext checking
check mode & reporter strategy consistency
Remove dead code: mode setting
check file: more errors reported
s/reportBuffer/reporter
simplify trytwice

tests pass
cleanup ContextReporter hierarchy (+3 squashed commits)
Squashed commits:
[2e23bb7] comment

tests pass: https://scala-webapps.epfl.ch/jenkins/job/scala-checkin-manual/1288/consoleFull
[fd069dc] just return unit
[1ada008] wip: refactor
TMP: updated check file
immediacy