repl depends on jline-2.12
Clarify that ThrowErrors is the default
Encapsulate reporting mode as class of reportBuffer.

Reporting mode used to be governed by contextMode.
This logic is left in place by this commit, and the consistency
of the new and the old is checked. Will be removed in follow-up commit.

The main difference is that we no longer throw TypeErrors in buffering mode.
There was one instance of context.error in implicit search the exploited the
fact that implicit search runs in buffering (silent) mode and thus calls to
error(pos,msg) used to throw new TypeError(pos, msg) -- made this explicit,
and removed throwing behavior from the buffering context reporter.
Remove dead code: mode setting
s/reportBuffer/reporter
Cleanup ContextReporter hierarchy

Next step: more principled buffering, make use of the single-entry point reporter.

First example simplification in `TryTwice`:
No need to store and restore errors -- just use a fresh reporter.
Also, control-flow with vars ftw.