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.

---
Review by @som-snytt. The diff for the whole fix, both commits together (much more readable) [is here](https://github.com/gourlaysama/scala/compare/scala:b8d71c590e9f64345bab86e6dd304a92145f52ea...wip/t6507-2).