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
Make Scaladoc actually exit with non-zero exit code in case of errors,
as its docs say it does.
SI-8843 AbsFileCL acts like a CL

Let the AbstractFileClassLoader override just the usual suspects.

Normal delegation behavior should ensue.

That's instead of overriding `getResourceAsStream`, which was intended
that "The repl classloader now works more like you'd expect a classloader to."
(Workaround for "Don't know how to construct an URL for something which exists
only in memory.")

Also override `findResources` so that `getResources` does the obvious thing,
namely, return one iff `getResource` does.

The translating class loader for REPL only special-cases `foo.class`: as
a fallback, take `foo` as `$line42.$read$something$foo` and try that class file.
That's the use case for "works like you'd expect it to."

There was a previous fix to ensure `getResource` doesn't take a class name.
The convenience behavior, that `classBytes` takes either a class name or a resource
path ending in ".class", has been promoted to `ScalaClassLoader`.
SI-8731 warning if @switch is ignored

For matches with two or fewer cases, @switch is ignored. This should
not happen silently.
SI-8888 Avoid ClassFormatError under -Ydelambdafy:method

The pattern matcher phase (conceivably, among others) can generate
code that binds local `Ident`s symbolically, rather than according
to the lexical scope. This means that a lambda can capture more than
one local of the same name.

In the enclosed test case, this ends up creating the following
tree after delambdafy

    [[syntax trees at end of                delambdafy]] // delambday-patmat-path-dep.scala
    matchEnd4({
      case <synthetic> val x1: Object = (x2: Object);
      case5(){
        if (x1.$isInstanceOf[C]())
          {
            <synthetic> val x2#19598: C = (x1.$asInstanceOf[C](): C);
            matchEnd4({
              {
                (new resume$1(x2#19598, x2#19639): runtime.AbstractFunction0)
              };
              scala.runtime.BoxedUnit.UNIT
            })
          }
        else
          case6()
      };
      ...
    })
    ...
    <synthetic> class resume$1 extends AbstractFunction0 {
      <synthetic> var x2: C = null;
      <synthetic> var x2: C = null;
      ...
    }

After this commit, the var members of `resume$1` are given fresh
names, rather than directly using the name of the captured var:

    <synthetic> var x2$3: C = null;
    <synthetic> var x2$4: C = null;
Merge pull request #4033 from retronym/ticket/8888

SI-8888 Avoid ClassFormatError under -Ydelambdafy:method
Update stripPrefix/StringLike docs to talk about no op case

Incorporate review comments by Som Snytt.
Merge pull request #4016 from lrytz/t8731

SI-8731 warning if @switch is ignored
Merge pull request #3986 from som-snytt/issue/6502-no-cp

 SI-6502 Repl reset/replay take settings args
Merge pull request #4034 from adriaanm/pr-3950-rework

Update stripPrefix/StringLike docs to talk about no op case
Merge pull request #4030 from som-snytt/issue/8843

SI-8843 AbsFileCL acts like a CL
Avoid ClassfileAnnotation warning for @SerialVersionUID

@SerialVersionUID is special-cased, the warning doesn't apply.

Related to SI-7041.
Merge pull request #4028 from soc/topic/serialversionuid-spam

Avoid ClassfileAnnotation warning for @SerialVersionUID
SI-4788/SI-5948 Respect RetentionPolicy of Java annotations

Note that I removed the check to ignore @deprecated:
- @deprecated extends StaticAnnotation, so they aren't
  supposed to show up in the RuntimeInvisibleAnnotation
  attribute anyway, and the earlier check for "extends
  ClassfileAnnotationClass" makes this check superflous
  anyway.
- Otherwise, if @deprecated was extending
  ClassfileAnnotationClass it would seem inconsistent
  that we don't emit @deprecated, but would do so for
  @deprecatedOverriding, @deprecatedInheritance, etc.
  Anyway, due to ClassfileAnnotation not working in
  Scala, and the additional check which only allows
  Java-defined annotations, this is pretty pointless
  from every perspective.
Merge pull request #4026 from soc/SI-4788-new

SI-4788/SI-5948 Respect RetentionPolicy of Java annotations
Merge pull request #4032 from dturner-tw/dturner/scaldoc-exit-code

Make Scaladoc actually exit with non-zero exit code in case of errors, as its docs say it does
Use color REPL after writing a def