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.
Overhaul of partest-ack.

Seems like many/most options to partest are broken. Working
around as much as I can to make this thing useful again, plus
lots of improvements in robustness. Spaces and such are
preserved properly now, and I added a new way of selecting
tests based on time.

  tools/partest-ack -s 1.week.ago
  % tests modified since time       ...  66

  tools/partest-ack 'case object (Foo|Bar)'
  % tests with matching paths       ...  0
  % tests with matching code        ...  7

File paths and file contents are uniformly acked now, so
for instance this works as expected.

  tools/partest-ack -i VIRTPAT
  % tests with matching paths       ...  41
  % tests with matching code        ...  11
  # 43 tests to run.
Merge pull request #2873 from paulp/pr/partest-ack

Overhaul of partest-ack.
Value class Depth.

It's the obvious translation from a raw Int into a value class.

It wasn't that long ago one could find a signature like this:

  def merge(tps: List[Type], variance: Int, depth: Int): Type

Do you feel lucky, method caller? Well, do ya?

Anyway, now it is:

  def merge(tps: List[Type], variance: Variance, depth: Depth): Type

Forget for a moment the fact that you'd probably rather not pass variance
for depth and depth for variance and look at the type signatures:

  (List[Type], Variance, Depth) => Type
  (List[Type], Int, Int) => Type
Logging cleanup.

Reduced the amount of extraneous logging noise at the
default logging level.

Was brought to my usual crashing halt by the discovery of identical
logging statements throughout GenASM and elsewhere. I'm supposing
the reason people so grossly underestimate the cost of such duplication
is that most of the effects are in things which don't happen, aka
"silent evidence".

An example of a thing which isn't happening is the remainder of
this commit, which exists only in parallel universes.
Merge pull request #2850 from gourlaysama/wip/t6507-2

SI-6507 completely sidestep handlers in REPL when :silent in on
Merge pull request #2874 from paulp/pr/depth

Value class Depth.