SI-6169 Refine java wildcard bounds using corresponding tparam

When opening an existential, Java puts constraints in the context that are derived
from the bounds on the type parameters of the existentially quantified type.

Example:
```
public class Exist<T extends String> {
  // java helpfully re-interprets Exist<?> as Exist<? extends String>
  public Exist<?> foo() { throw new RuntimeException(); }
}
```

fail - pos/t6169  [compilation failed]% scalac t6169/Exist.java t6169/ExistF.java t6169/OP.java t6169/Skin.java t6169/Skinnable.java t6169/skinnable.scala t6169/t6169.scala
% javac t6169/Exist.java t6169/ExistF.java t6169/OP.java t6169/Skin.java t6169/Skinnable.java
% javac -d /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169-pos.obj -classpath /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169-pos.obj:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scala-library.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scala-reflect.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scala-compiler.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scalap.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scala-actors.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/scala-lang/modules/scala-partest_2.11.0-M8/1.0.0-RC8/scala-partest_2.11.0-M8-1.0.0-RC8.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/apache/ant/ant/1.8.4/ant-1.8.4.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/apache/ant/ant-launcher/1.8.4/ant-launcher-1.8.4.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/scala-lang/modules/scala-xml_2.11.0-M8/1.0.0-RC7/scala-xml_2.11.0-M8-1.0.0-RC7.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/scala-lang/modules/scala-parser-combinators_2.11.0-M8/1.0.0-RC5/scala-parser-combinators_2.11.0-M8-1.0.0-RC5.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/m2repo/org/scalacheck/scalacheck_2.11.0-M8/1.11.3/scalacheck_2.11.0-M8-1.11.3.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scala-partest-extras.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/build/pack/lib/scala-partest-javaagent.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/test/files/lib/annotations.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/test/files/lib/enums.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/test/files/lib/genericNest.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/test/files/lib/jsoup-1.3.1.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/test/files/lib/methvsfield.jar:/localhome/jenkins/a/workspace/scala-checkin-manual/test/files/lib/nest.jar /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169/Exist.java /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169/ExistF.java /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169/OP.java /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169/Skin.java /localhome/jenkins/a/workspace/scala-checkin-manual/test/files/pos/t6169/Skinnable.java
% scalac t6169/skinnable.scala t6169/t6169.scala
skinnable.scala:9: error: type mismatch;
 found   : OP[Skin[_]]
 required: OP[Skin[_ <: Skinnable]]
Note: Skin[_] >: Skin[_ <: Skinnable], but Java-defined class OP is invariant in type T.
You may wish to investigate a wildcard type such as `_ >: Skin[_ <: Skinnable]`. (SLS 3.2.10)
  def skin: ObjectProperty[Skin[_ /* inferred: <: Skinnable */]] = ObjectProperty.jfxObjectProperty2sfx(delegate.skinProperty)
                                                                                                                 ^
skinnable.scala:13: error: type mismatch;
 found   : OP[Skin[_]]
 required: ObjectProperty[Skin[_ <: Skinnable]]
  skinCheckInference: ObjectProperty[Skin[_  <: Skinnable]]
  ^
two errors found

fail - pos/t2940  [compilation failed]% scalac t2940/Cycle.java t2940/Error.scala
Cycle.java:1: error: illegal cyclic reference involving type T
public interface Cycle<T extends Cycle<?>> {
                                 ^
one error found