SI-6476 Improve error on escapement

Behavior of escape processing under string interpolation can
be confusing.  This commit improves the exception message so
you know at least what sort of escapes are handled.

This came up on SO in the form `s"\d".r`, where it may not
be obvious what is throwing and how to work around it.

```
scala> s"\d".r
scala.StringContext$InvalidEscapeException: invalid escape '\d' not one of [\b, \t, \n, \f, \r, \\, \", \'] at index 0 in "\d". Use \\ for literal \.

scala> s"a\"
scala.StringContext$InvalidEscapeException: invalid escape at terminal index 1 in "a\". Use \\ for literal \.
```

Referencing SI-6476 because that has become the magnet ticket
for "escape processing under string interpolation, huh?"

This doesn't address `$"` and doesn't handle the more interesting
parse error `s"a\"b"`.
SI-6476 Documentation

And adjust the test.
SI-6476 Unitize procedures, readability

Strictly trivial updates for readability.

I used to prefer procedure syntax, but since it was
scheduled for removal, I can't scan a def without an
equals sign.
SI-6476 Unitize ALL the procedures!
SI-4563 friendlier behavior for Ctrl+D in the REPL

Closing the REPL with Ctrl+D does not issue a newline, so the user's
prompt displays on the same line as the `scala>` prompt. This is bad.
We now force a newline before closing the interpreter, and display
`:quit` while we're at it so that people know how to exit the REPL
(since `exit` doesn't exist anymore).

The tricky part was to only add a newline when the console is
interrupted, and *not* when it is closed by a command (like `:quit`),
since commands are processed after their text (including newline) has
been sent to the console.
a few missing deprecations in proxy collections.

SeqProxy was properly deprecated, so were the CollProxyLike classes, and
the ones in collection.immutable, but these four somehow survived
the Big Proxy Deprecation (tm).
Orphan check file

Orphaned by the override check reversion that deleted the test source.

2524fdde3edc7b668fdb4bf68e990141d3ec18d6
SI-8781 Avoid double-expansion under -Ymacro-expand:discard

This mode of macro expansion is used by the presentation compiler to
leave the original macro applications ("expandees") in the type
checked trees, annotated with the types of the expansions.

However, under some circumstances involving implicits, we would
re-expand the macro. If the macro wasn't stable, this could lead
to a type mismatch.

The originally reported problem was with the shapeless
`mkSingletonOps` macro. Its expansion had the type of a freshly-named
class local to the expansion. Upon the re-expansion, a new class
was generated, which lead to errors like:

    client/Client.scala:4: error: type mismatch;
     found   : fresh$macro$2
     required: fresh$macro$1

This commit suppressed re-expansion of the expandee by use of
the existing, tree attachment driven mechanism.
Merge pull request #3916 from retronym/ticket/8781

SI-8781 Avoid double-expansion under -Ymacro-expand:discard
remove jline sources from src/ now that we use a released jline.

We don't need those, right?
We don't even build that folder anymore (since 1b0fa91), it is just dead
code.
Merge pull request #3921 from gourlaysama/goodbye-jline

remove jline sources from src/ now that we use a released jline.
Merge pull request #3914 from som-snytt/issue/orphan-check

Orphan check file
SI-8787 If you love nulls, so does Regex

Regex is robust when unapplying null.  A null never matches.
SI-8787 Update doc for Regex

Simplify the exposition and update the examples.

Emphasize pattern matching, especially using `r.unanchored`
instead of `for (r(x,y,z) <- r findFirstIn text)`.

Certain details are moved to method docs.

It would be nice to fix matching package doc,
but the doc must attach to the package object, it seems.
Introducing a package object is not binary-compatible.

Includes a doc line edit on 2.12, anticipating the merge.
test for InnerClass and EnclosingMethod attributes

Some parts of the test assert (current) buggy behavior. This is marked
in the test file with TODO. It will be fixed in later work on the
backend.
Merge pull request #3889 from som-snytt/issue/6476-alt

SI-6476 Improve error on escapement
Merge pull request #3902 from gourlaysama/wip/t4563

SI-4563 friendlier behavior for Ctrl+D in the REPL
Merge pull request #3907 from gourlaysama/wip/proxy

a few missing deprecations in proxy collections.
Merge pull request #3927 from lrytz/innerClassesTest

test for InnerClass and EnclosingMethod attributes
SI-8512 Infer a type for f"$args"

The f-interpolator gets a type param that better be Any to avoid
unfortunate widenings.

Hey, it worked!

Unfortunately, when `Any` is inferred, `-Xlint:infer-any` takes notice.

This is probably a greater problem for the f-interpolator than for
quasiquotes, which are a more specialized tool.