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.
Merge pull request #3615 from retronym/ticket/8376

SI-8376 Fix overload resolution with Java varargs