SI-6863 root cause fixed using factory of scala.runtime.*Ref

This commit does away with an error-prone division of labor between
UnCurry and LambdaLift, a division of labor by which UnCurry had to
anticipate under which circumstances LambdaLift creates a
scala.runtime.*Ref whose initial value is given by a an expression
including a Try in non-statement position. That sounds complicated,
and it is.

The solution so far (fixing SI-6863) is replaced by a simpler approach,
at the cost of forward binary comptability with pre-2.11 releases,
this time fixing the root cause of SI-6863.

From now on, a s.r.*Ref is instantiated via invocation of
a static factory method in the s.r.*Ref class in question.
Unlike the code that was emitted so far (which involved
NEW refclass, DUP, expr, INVOKESPECIAL refclass.<init>)
the "expr" doesn't appear on the operand stack on top
of the *Ref value being initialized. In other words,
the *Ref initialization is in statement position provided "expr" is.
indentation typo
Partest can --show-diff again after incremental report.

A flag is set in NestUI to look for "diff" in the transcript
of failing tests.
Merge pull request #2489 from som-snytt/issue/partest-show-diff

Partest can --show-diff again after incremental report.
Merge pull request #2462 from magarciaEPFL/backendish9

SI-6863 root cause fixed using factory of scala.runtime.*Ref
Flesh out copyMemberDef methods with copyModuleDef.
Boil out some duplicated parser logic.

Our focus today is on packages and package objects.
Par-Test includes log in transcript of failed exec

The previous behavior was that the Failure is generated
before the log is appended to the transcript.

That meant that the summary transcripts wouldn't include
the log file. Luckily, the transcript would say something
like "jvm > showFail-run.log".
Merge pull request #2425 from paulp/pr/no-package-objects

Boil out some duplicated parser logic.
Merge pull request #2512 from som-snytt/issue/partest-exec-log

Par-Test includes log in transcript of failed exec
Corralling Modes into a smaller pen.

Attempting to reduce the frequency of low-level operations
with modes. I mean stuff like this:

  if ((mode & (EXPRmode | LHSmode)) == EXPRmode)

THey don't make those ten line boolean guards any easier
to understand. Hopefully this will lead us toward eliminating
some of the modes entirely, or at least better isolating
their logic rather than having it interspersed at arbitrary
points throughout the typer.

Modes are in their entirety a leaked implementation detail.
Typing a tree requires a tree and optionally an expected type.
It shouldn't require a bucket of state bits. In subsequent
commits I will start eliminating them.

This commit also breaks adapt down into more digestible chunks.
Started eliminating modes.

Consolidating the scattered typer state in Context, where it's
relatively easy to keep an eye on, rather than threaded throughout
the typer in sneaky/sticky bitmasks. The general pattern will be
what was once an explicitly passed around bit in Mode becomes
an implicitly propagated-as-appropriate bit in Context.

In this commit:

          ALTmode becomes context mode "PatternAlternative"
         STARmode becomes context mode "StarPatterns"
  SUPERCONSTRmode becomes context mode "SuperInit"
Eliminated SNDTRYmode.

It becomes context mode "SecondTry".
Eliminated RETmode.

It becomes context mode "ReturnExpr".
Eliminated HKmode.

It becomes context mode "TypeConstructor".
Refactored stabilize.

Mode elimination ramps up in difficulty now, so I pursued
other forms of code hygiene.
Incorporated reviewer feedback.

Made things a little more consistent and self-apparent.