SI-6541 valid wildcard existentials for case-module-unapply

Instead of letting the compiler infer the return type of case module
unapply methods, provide them explicitly.
Right you are. In fact, the type parameters of `copy` are also prone to shadowing.

```scala
case class C2[T <: String]() {
  class String
}
```

```
% scalac-hash v2.11.2 test/files/run/t6541.scala
test/files/run/t6541.scala:28: error: type arguments [T] do not conform to class C2's type parameter bounds [T <: String]
case class C2[T <: String]() {
           ^
one error found
```

In this case, we can defer that mess to a new ticket and proceed with this one. Perhaps though it needs to be under `-Xsource:2.12` as it changes signatures (albeit in a binary compatible way).