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