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>")
Add color to severity in REPL reporter

* Errors are red
* Warnings are yellow
Use color REPL after writing a def
SI-8894 dealias when looking at tuple components

Classic bait-and-switch: `isTupleType` dealiases, but `typeArgs` does not.
When deciding with `isTupleType`, process using `tupleComponents`.
Similar for other combos. We should really enforce this using extractors,
and only decouple when performance is actually impacted.
Update 02-identifiers-names-and-scopes.md

Fixed typo.
Update 03-types.md

Fixed typo.
Update 03-types.md

Inserted missing word "bounds".
Update 04-basic-declarations-and-definitions.md

Corrected the claimed outcome of the example in the section on repeated parameters. The example method sum sums up the _squares_ of the arguments.
Update 06-expressions.md

Inserted two missing instances of the word "the".
Corrected "invokeDynamic" to "applyDynamic".
Update 08-pattern-matching.md

Elided superfluous "a".
Corrected "no" to "not".
Update 10-xml-expressions-and-patterns.md

Changed two wrong plurals to singulars, and inserted a comma in an enumeration of alternatives before the last "or".
Update 12-the-scala-standard-library.md

Changed "in" to "by the".
SI-8890 handle reference to overload with error

When buffering, we must report the ambiguity error to avoid a stack overflow.
When the error refers to erroneous types/symbols,
we don't report it directly to the user,
because there will be an underlying error that's the root cause.
Merge pull request #4037 from adriaanm/t8890

SI-8890 handle reference to overload with error
Merge pull request #3993 from puffnfresh/feature/color-repl

Color REPL under -Dscala.color
Merge pull request #4038 from adriaanm/t8894

SI-8894 dealias when looking at tuple components
Update 04-basic-declarations-and-definitions.md

Reverted the claimed result values of the example in the section on repeated parameters and changed the code of the example method instead.
Merge pull request #4039 from roberthoedicke/2.11.x

Minor spelling corrections and fix of the claimed outcome of the examples in the section on repeated parameters
SI-6502 Reenables loading jars into the running REPL (regression in 2.10)

Fixes SI-6502, reenables loading jars into the running REPL
(regression in 2.10). This PR allows adding a jar to the compile
and runtime classpaths without resetting the REPL state (crucial
for Spark SPARK-3257).

This follows the lead taken by @som-snytt in PR #3986, which
differentiates two jar-loading behaviors (muddled by cp):

  - adding jars and replaying REPL expressions (using replay)
  - adding jars without resetting the REPL (deprecated cp,
    introduced require) This PR implements require (left
    unimplemented in #3986)

This PR is a simplification of a similar approach taken by
@gkossakowski in #3884. In this attempt, we check first to make
sure that a jar is only added if it only contains new
classes/traits/objects, otherwise we emit an error. This differs
from the old invalidation approach which also tracked deleted
classpath entries.