SI-7584 Fix typer regression with by-name parameter types

It regressed in fada1ef6b#L4L614. Partially reverting just
this change restores the correct behaviour:

```
-        if (sym.isStable && pre.isStable && !isByNameParamType(tree.tpe) &&
+        if (treeInfo.admitsTypeSelection(tree) &&
```

This patch embeds the check for by-name parameter types into
`TreeInfo.isStableIdentifier`. That code already checks for
`Symbol#isStable`, which exludes direct references to by-name
parameters. But the additional check is required to deal with
by-name parameters in function types, e.g `(=> Int) => Any`.

Open question: should we go further and embed this check in `isStable`?

Currently:

    final def isStable        = isTerm && !isMutable && !(hasFlag(BYNAMEPARAM)) && (!isMethod || hasStableFlag)

Such function types are an underspecified corner of the language,
albeit one that is pretty useful writing, for example, in the
signature of a lazy foldRight that can operate over infinite
structures:

    def foldRight[A, B](fa: F[A], z: => B)(f: (A, => B) => B): B

The next commit subjects them to a little testing.
SI-7584 Test and spurious warning fix for by-name closures

The enclosed test case exercises by-name closures, which were
the subject of the previous commit. In the process, a spurious
warning was eliminated.
Remove dependency on xml in sys.process.

Added deprecated conversions in xml.Elem to preserve source compatibility.
Remove dependency on xml in ScalaRunTime.

runtime.ScalaRunTime.stringOf's behavior has changed slightly:
Call the object's `toString` for all classes in `scala.xml._`,
instead of only for `Node` and `MetaData` (old behavior).
Remove dependency on xml in plugin loading.
Remove dependency on xml in MarkupParsers

Inlined TextBuffer.
Remove dependency on xml in ast.parser

Copied the following files from scala.xml to ast.parser.xml:
  - MarkupParsers differs from scala.xml.MarkupParsers only in the first 17 lines
  - Utility.scala was refactored and reduced (also includes TokenTests)
Set scene for Predef.$scope's demise.

When there's no Predef.$scope but xml is being used,
the compiler aliases scala.xml.TopScope to $scope.

There must be a scala.xml package when xml literals were parsed.

For compatibility with the old library, which relied on $scope being in scope,
synthesize a `import scala.xml.{TopScope => $scope}` when xml is needed,
but there's no Predef.$scope and the old library is detected (scala.xml.TopScope exists).
SI-6855: REPL emits error on partial pastie

If pasted code is interpreted with an incomplete result,
attempt to compile it to display an error.

Unfancily, the code is wrapped in an object for compilation.
Merge pull request #2667 from adriaanm/modularize-xml

Spin off xml library as scala-library-xml.
Merge pull request #2659 from retronym/ticket/7584

SI-7584 Fix typer regression with by-name parameter types
Merge pull request #2672 from som-snytt/issue/6855-repl-pasted-brace

SI-6855: REPL emits error on partial pastie
SI-7599 [Avian] Prevent TCO in test to inspect stack

This commit modifies methods in the test to be non-tail-callable to
prevent Avian from eliding the stack frames we want to inspect.
Merge pull request #2675 from soc/SI-7599

SI-7599 Modify methods to be non-tail-callable ...