SI-8376 Fix overload resolution with Java varargs

When comparing specificity of two vararg `MethodTypes`, `isAsSpecific`
gets to:

```
  case mt @ MethodType(_, _) if bothAreVarargs =>
    checkIsApplicable(mt.paramTypes mapConserve repeatedToSingle)
```

The formal parameter type of a Java varargs parameter is represented
as `tq"${defintions.JavaRepeatedParamClass}[$elemTp]"`. For a Scala
repeated parameter, we instead use `defintions.RepeatedParamClass`.

`bothAreVarargs` detects `JavaRepeatedParamClass`, by virtue of:

```
def isRepeatedParamType(tp: Type)      = isScalaRepeatedParamType(tp) || isJavaRepeatedParamType(tp)
```

But, `repeatedToSingle` only considers `RepeatedParamClass`.

This bug was ostensibly masked in 2.10.3, but became apparent after
a not-quite-refactoring in 0fe56b9770. It would be good to pin that
change down to a particular line, but I haven't managed that yet.
SI-8376 Better type printing for Java varargs

`T*` rather than `<repeated>[T]`, as we alreday do for Scala repeated
parameters.
SI-8363 Disable -Ydelambdafy:method in constructor position

As @magarciaEPFL has done in his experimental optimizer [1], we can
avoid running into limitations of lambdalift (either `VerifyError`s,
ala SI-6666, or compiler crashes, such as this bug), by using the
old style of "inline" lambda translation when in a super- or self-
construtor call.

We might be able to get these working later on, but for now we
shouldn't block adoption of `-Ydelamndafy:method` for this corner
case.

[1] https://github.com/magarciaEPFL/scala/blob/GenRefactored99sZ/src/compiler/scala/tools/nsc/transform/UnCurry.scala#L227
SI-8366 make partial function and match trees disjoint

Previously one could match a partial function with match quasiquote:

    scala> val q"$scrutinee match { case ..$cases }" = q"{ case Foo => Bar
    }"
    scrutinee: universe.Tree = <empty>
    cases: List[universe.CaseDef] = List(case Foo => Bar)

This was quite annoying as it leaked encoding of partial functions as
Match trees with empty tree in place of scrutinee.

This commit make sure that matches and partial functions are disjoint
and don't match one another (while preserving original encoding under
the hood out of sight of the end user.)
Add more tests for partial functions
SI-8368 respect user-supplied -Dscala.usejavacp in Windows runner
Merge pull request #3620 from huitseeker/fix-SI-8368

Fixes syntax error in unix runner.
Merge pull request #3621 from szeiger/tmp/si8368

SI-8368 respect user-supplied -Dscala.usejavacp in Windows runner
Merge pull request #3604 from densh/si/8366

SI-8366 make partial function and match trees disjoint
Merge pull request #3616 from retronym/ticket/8363

SI-8363 Disable -Ydelambdafy:method in constructor position
Merge pull request #3619 from huitseeker/issue/SI-8392

SI-8392 Guards QuasiquoteClass against non-availability in scala-reflect
SI-8395 Regression in pattern matching with nested binds

Regressed in https://github.com/scala/scala/pull/2848. In particular,
see 0cf47bdb5b and 017460e63c.

Because of the regression, this pattern:

    (s @ (_s @ (_: String)))

was translated into `typeTestStep`, rather than a `bindingStep`. This
came down the the use of `unbind` in the `TypeBound` extractor.

My first step was to remove the `unbind`. That led to another
problem: the tree now matches `SymbolAndTypeBound`, which extracted
`symbol = s, tpe = String`, ignoring the `_s`. I changed that
extractor to no longer recursively apply to the sub-pattern tree,
which is what `MaybeTypedBound` used to do.

I also checked for other uses of `unbind` in the match translation.
The only place I found it is in `BoundTree#pt`. I believe that this
usage is correct, or at least, not obviously incorrect.
Merge pull request #3615 from retronym/ticket/8376

SI-8376 Fix overload resolution with Java varargs
Merge pull request #3622 from retronym/ticket/8395

SI-8395 Regression in pattern matching with nested binds
SI-8185 Correct grammar for single-warning compilation run