Color REPL under -Dscala.color

We already use -Dscala.color when using -Ytyper-debug

This tries to reuse the colors chosen from the debug flag:

* Bold blue for vals (e.g. "res0")
* Bold green for types (e.g. "Int")
* Magenta for the shell prompt (e.g. "scala>")
SI-6502 Remove cp command as unworkable

People expect to change the class path midstream.

Let's disabuse them by removing the broken command.

The internals are deprecated.
SI-6502 Repl reset/replay take settings args

The reset and replay commands take arbitrary command line args.
When settings args are supplied, the compiler is recreated.

For uniformity, the settings command performs only the usual
arg parsing: use -flag:true instead of +flag, and clearing a
setting is promoted to the command line, so that -Xlint: is not
an error but clears the flags.

```
scala> maqicode.Test main null
<console>:8: error: not found: value maqicode
              maqicode.Test main null
              ^

scala> :reset -classpath/a target/scala-2.11/sample_2.11-1.0.jar
Resetting interpreter state.
Forgetting all expression results and named terms: $intp

scala> maqicode.Test main null
Hello, world.

scala> val i = 42
i: Int = 42

scala> s"$i is the loneliest numbah."
res1: String = 42 is the loneliest numbah.

scala> :replay -classpath ""
Replaying: maqicode.Test main null
Hello, world.

Replaying: val i = 42
i: Int = 42

Replaying: s"$i is the loneliest numbah."
res1: String = 42 is the loneliest numbah.

scala> :replay -classpath/a ""
Replaying: maqicode.Test main null
<console>:8: error: not found: value maqicode
              maqicode.Test main null
              ^

Replaying: val i = 42
i: Int = 42

Replaying: s"$i is the loneliest numbah."
res1: String = 42 is the loneliest numbah.
```

Clearing a clearable setting:
```
scala> :reset -Xlint:missing-interpolator
Resetting interpreter state.

scala> { val i = 42 ; "$i is the loneliest numbah." }
<console>:8: warning: possible missing interpolator: detected interpolated identifier `$i`
              { val i = 42 ; "$i is the loneliest numbah." }
                             ^
res0: String = $i is the loneliest numbah.

scala> :reset -Xlint:
Resetting interpreter state.
Forgetting this session history:

{ val i = 42 ; "$i is the loneliest numbah." }

scala> { val i = 42 ; "$i is the loneliest numbah." }
res0: String = $i is the loneliest numbah.

```
Add color to severity in REPL reporter

* Errors are red
* Warnings are yellow
Better ant / junit interaction

Currently junit test sources are always rebuilt, that's wasteful. The
second dependency on the junit task is there so that the first can be
skipped if sources haven't changed.

Also normalize package names versus location in the `test/junit` folder:
ant isn't very clever when it comes to selectively recompiling tests, so
now editing a test will only cause that one to be recompiled (instead of
~13 files every time).

This makes TDD with junit even faster.
SI-8445, SI-6622 test cases, already fixed

They were most likely fixed in #3931 / e3107465c3.

The test case for SI-6622 is taken from Jason's PR #2654. I adjusted
the EnclosingMethod to be `null` in two places in the check file, for
the classes that are owned by fields (not methods).
SI-8868 Fix unpickling of local dummy symbols

These pop up as the owner of symbols in annotation arguments,
such as the ones introduced by the names/defaults desugaring.

The first two test cases here motivate the two patches to Unpicker.

The third requires both fixes, but exploits the problem directly,
without using `@deprecated` and named arguments.

See also 14fa7be / SI-8708 for a recently remedied kindred bug.
Merge pull request #4013 from retronym/ticket/8868

SI-8868 Fix unpickling of local dummy symbols
Merge pull request #4011 from lrytz/t8445-6622

SI-8445, SI-6622 test cases, already fixed
SI-8087 keep annotations on mixed-in private[this] fields

Related to SI-2511 / eea7956, which fixed the same issue for non
`private[this]` fields.

If you have

    trait T { private[this] val f = 0 }
    class C extends T

Mixin geneartes an accessor method `T.f` with owner `T`. When
generating the field in `C`, the Mixin.mixinTraitMembers calls
`fAccessor.accessed`. The implementation of `accessed` does a lookup
for a member named `"f "` (note the space). The bug is that
`private[this]` fields are not renamed to have space
(`LOCAL_SUFFIX_STRING`) in their name, so the accessed was not found,
and no annotations were copied from it.
Don't remove elements from a map during iteration.

Doing so relies on implementation details which might change.

See #3911 / SI-8774.
Merge pull request #4018 from retronym/ticket/8774-concurrent-modification

Don't remove elements from a map during iteration.
SI-6192  Range: to, until and end are confusing

Added some documentation explaining what the role of `end` is.
SI-8624 PriorityQueue documentation is not clear enough

Added a paragraph explaining that dequeue is the only way to get your elements in priority order.
SI-8869 Prevent ill-kindedness in type lambdas

When type checking an type application, the arguments are allowed
to be of kinds other than *. This leniency is controlled by the
`ContextMode` bit `TypeConstructorAllowed`.

(More fine grained checking of matching arity a bounds of type
constructors is deferred until the refchecks phase to avoid
cycles during typechecking.)

However, this bit is propagated to child contexts, which means
that we fail to report this error in the lexical context marked
here:

    T[({type x = Option}#x)]
        `-------------'

This commit resets this bit to false in any child context
relates to a different tree from its parent.
SI-8870 Fix markup errors in the Types section of the spec

Bad: `T'_n`
Good: `T_n'`
Increase REPL startup timeout to avoid test failures

Under load on Jenkins, we've been seeing:

```
% diff /localhome/jenkins/a/workspace/scala-nightly-auxjvm-2.12.x/jdk/jdk7/label/auxjvm/test/files/run/t4542-run.log /localhome/jenkins/a/workspace/scala-nightly-auxjvm-2.12.x/jdk/jdk7/label/auxjvm/test/files/run/t4542.check
@@ -2,75 +2,14 @@ Type in expressions to have them evaluated.
 Type :help for more information.

 scala> @deprecated("foooo", "ReplTest version 1.0-FINAL") class Foo() {
 java.util.concurrent.TimeoutException: Futures timed out after [60 seconds]
 	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
 	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:153)
 	at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:95)
 	at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:95)
 	at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
 	at scala.concurrent.Await$.ready(package.scala:95)
 	at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:431)
 	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:457)
 	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:875)
```

This commit bumps the timeout up be a factor of ten to try to
restore that comforting green glow to https://scala-webapps.epfl.ch/jenkins/view/2.N.x
Merge pull request #4010 from lrytz/t8087

SI-8087 keep annotations on mixed-in private[this] fields
Merge pull request #4008 from gourlaysama/wip/junit-2

Better ant / junit interaction
SI-8845 Control flow pot-pourri crashes GenASM, but not -BCode

Given that we'll switch to GenBCode in 2.12, the test case
showing the bug is fixed under that option is all I plan to
offer for this bug.

The flags file contains `-Ynooptimize` to stay locked into
`GenBCode`.