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.
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.
SI-7429 Fix checkinit build failure in Contexts

The recent refactoring in Contexts resulted in an uninitialized
field access. This wasn't deadly, as it was already compensating
for this by expecting a null value for `outer` during in the body
of the constructor of Contexts when extended by NoContext.

This commit reworks that code a little to avoid dereferencing the
overriden `outer` field.

A similar mistake in `ImportContext` is also corrected.
SI-6784 Localize feature imports in scala.swing.

These were inadvertantly added to the public API in f15dc74 for anyone
importing scala.swing._, which unintentionally enabled reflectiveCalls
and implicitConversions for clients of the API.

This change breaks the source compatibiliy poilicy, rather than
deprecating these, based on the extremely low chance that someone is
using these in something like:

    import scala.swing._; println(implicitConversions)
Address a deprecation warnings in scala-swing.

While I was in the neighbourhood.
Merge pull request #2465 from retronym/ticket/6784

SI-6784 Localize features imports in scala.swing
Merge pull request #2463 from retronym/ticket/7429

SI-7429 Fix checkinit build failure in Contexts
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.