SI-7422 GenASM populates and clears its maps within a Run
SI-7291: No exception throwing for diverging implicit expansion

Since we don't throw exceptions for normal errors it was a bit odd
that we don't do that for DivergingImplicit.
As SI-7291 shows, the logic behind catching/throwing exception
was broken for divergence. Instead of patching it, I rewrote
the mechanism so that we now another SearchFailure type related
to diverging expansion, similar to ambiguous implicit scenario.
The logic to prevent diverging expansion from stopping the search
had to be slightly adapted but works as usual.

The upside is that we don't have to catch diverging implicit
for example in the presentation compiler which was again showing
that something was utterly broken with the exception approach.
SI-7291: Remove error kinds.

What seemed like a good idea initially (since potentially there were
many different kinds of errors that could be treated specially),
started to complicate the error logic.
So let's just match on the specific instance of an error to
manipulate the buffer.
maps in GenASM guaranteed mem-leak-free by perRunCaches
no need to manually clear perRunCaches in GenASM
compiler flag -Ygen-asmp to emit .asmp textual files for bytecode

This commit adds the -Ygen-asmp compiler flag, similar in purpose to what -Ygen-javap used to be.

The ASM-based counterpart to javap is useful even in those cases where javap is available,
as it produces for example readable (textual) output for pickles.

Additionally, javap displays quite differently two constant pools that have identical contents
(javap shows their physical layout, not just the information the entries hold).

Finally, stack maps (classfile version 50 and up) are displayed in encoded form by javap, their expansion by ASM is more readable.
BytecodeWriters.BytecodeWriter doesn't need to fiddle with Symbol

This commit allows a BytecodeWriter to focus on File, Paths, and streams. GenASM now does the conversion from Symbol to File.
Route -explaintypes through reporter.

Sick of seeing Console printlns during partest runs.
You should not print anything to Console.{out,err} if
it's ever going to happen outside developerland.
Merge pull request #2469 from paulp/pr/explaintypes

Route -explaintypes through reporter.
Merge pull request #2459 from magarciaEPFL/backendish7

similar in purpose to -Ygen-javap but with some advantages: -Ygen-asmp
Merge pull request #2428 from hubertp/issue/7291

SI-7291: Don't throw exceptions while encountering diverging expansion.
SI-7362, crash in presentation compiler.

Code by retronym, test by huitseeker, I just move stuff around.
More useful checkfile output in interactive tests.

I resisted the urge to fix "aksTypeCompletion" for as long
as I possibly could. While I was there I threw in what seem
to be like significant output improvements, but you tell me.
SI-7358 Partest fails on scalacheck failure

A failing test generates a test failure.
The failure log is added to the transcript.
The log stream is closed when done.
Partest testnum field width is sensitive to total tests

Allow the hyphens to line up on a column within the output
for a test category or "kind".

```
$ partest files/neg/t4134.scala --run
Selected 1348 tests drawn from 1 named test categories, specified tests

& starting 1 test in neg
ok 1 - neg/t4134.scala

& starting 1347 tests in run
ok    1 - run/absoverride.scala
ok    2 - run/amp.scala
ok    3 - run/adding-growing-set.scala
```
Update ScalaCheck to 1.10.1.

Puts test-interface on the class path.
SI-7349 Partest supports test-interface

Partest uses test-interface API to invoke ScalaCheck.  This obviates
ad hoc output checking for result status.

The context class loader is set to a loader that the scaladoc scalacheck
tests can use.
Partest has an optionable wait period.

Partest --timeout "30 seconds" to time out the test run.

It will not hang on timeout ("I hang with Par-Test" t-shirts
not-withstanding).

It's beyond the scope of this commit to investigate argument
parsing:

`partest --timeout "\"30 seconds"\" --pos`
SI-7409 Par-Test: A crash is not a DNC for neg tests

A compiler crash does not count as Does Not Compile for
purposes of a negative test. Changing the test kind from
"neg" to "dnc" is out of scope for this PR.

Even if the user asks to update the check file with the
crash result, we must prevent him from doing so. Any
further attempts to update the check file with a crash
will dispatch the Scala SWAT squad which will race to
his location and physically restrain the user. Only
Martin holds the code which will allow the squad to
stand down. So make sure his cell is on next time you
want to --update-check.

A neg test will stop trying to compile after the first
failed round, which is all that matters.

By popular request, a new test outcome is emitted when
the check file is updated. It is called "Updated". It
even has its own short status, the double-plus that is
reminiscent of diff output.
Merge pull request #2453 from magarciaEPFL/backendish6

SI-7422 GenASM populates and clears its maps within a Run