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.
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.
Fix typo in Scaladoc
SI-3936 - add test case to show that SI-3936 is already fixed

These are exactly the examples given by Lukas Rytz in SI-3936.
They fail with 2.10.1 and compile with 2.10.2 as well as current master.
SI-7511 Remove indirection of numeric methods

Methods on `Rich<AnyVal>`s like `abs`, `doubleValue`, `floatValue`,
`longValue`, `intValue`, `byteValue`, `shortValue`, `min`, `max`,
`signum` are slow because they go through multiple indirections
including typeclasses and boxing.

For instance, take `1L.abs`:

Instead of just computing and returning the result (like it is done in
`RichInt`), this is what happens:

- `RichLong` inherits `abs` by extending `ScalaNumberProxy[T]`
- `ScalaNumberProxy[T]` has an abstract
  `protected implicit def num: Numeric[T]`
- This method is implemented in `RichLong` and points to
  `scala.math.Numeric.LongIsIntegral`
- The actual method `abs` now calls `num.abs(self)`
SI-7600 [Avian] Skip tests r/stream_length and r/t4294

The issue is that Avian's GC is currently not precise enough to
determine the exact lifetime of each local/stack reference, and
therefore considers the this reference to be reachable in situations
where it could have been collected.

This can cause issues (as seen in run/stream_length and run/t4294:
`java.lang.OutOfMemoryError`) if code relies on the garbage collection
of these values to keep memory consumption constant.

This commit simply skips these two tests on Avian until the GC
implementation is fixed.
Get rid of raw types which cause unnecessary warnings
SI-7590 TreeSet should fail fast if Ordering is null

While migrating scala.tools.nsc.util.TreeSet to
scala.collection.mutable.TreeSet, I messed up initialization order
and realized that TreeSet accepts null as an Ordering and only fails
much later.

This change makes mutable.TreeSet and immutable.TreeSet fail
immediately.
Remove dependency on combinators from CommandLinerParser.

tools.cmd.CommandLineParser uses a small hand-rolled parser

TODO: replace partest's usage of scala.tools.nsc.util.CommandLine
by scala.tools.cmd.CommandLine
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 ...
Merge pull request #2669 from adriaanm/modularize-parsing

Modularize parsing
Merge pull request #2677 from jannic/SI-3936

SI-3936 - add test case to show that SI-3936 is already fixed
Merge pull request #2678 from soc/SI-7600

SI-7600 [Avian] Skip tests r/stream_length and r/t4294
Merge pull request #2679 from soc/topic/java-rawtype-cleanup

Get rid of raw types which cause unnecessary warnings
SI-7344 Specialize methods in private scopes

This performs method specialization inside a scope other than a {class,
trait, object}: could be another method or a value. This specialization
is much simpler, since there is no need to record the new members in
the class signature, their signatures are only visible locally.
It works according to the usual logic:
 - we use normalizeMember to create the specialized symbols
 - we leave DefDef stubs in the tree that are later filled in by tree
duplication and adaptation

The solution is limited by SI-7579: since the duplicator loses the sym
annotations when duplicating, this expansion and rewiring can only take
place in code that has not been subject to duplication. You can see the
test case for an example.

Review by @dragos, @paulp or @axel22.
Merge pull request #2683 from VladUreche/issue/7344-master

SI-7344 Specialize methods in private scopes