SI-6507 completely sidestep handlers in REPL when :silent in on

This is a cleanup of 6db8a52, the original fix for SI-6507.

When the REPL is :silent, all handlers are ignored when it comes to
generating the printed result. The result extraction code (`lazy val
resN = ...`) is still generated, but now it isn't called until the
user calls it.
Merge pull request #2850 from gourlaysama/wip/t6507-2

SI-6507 completely sidestep handlers in REPL when :silent in on