WIP SI-6891 Fix value class + tailrec crasher.

rhs.substituteSymbols(old, new) leaves us with:

    def loop#12225(x#12226: A#15491): scala#21.this.Unit#1615 =
      loop#12225(x#12226)

In which the TermSymbol x#12226 has a stale info, pointing at
the A#7274, the class type parameter, rather than A#15491,
the corresponding type parameter of the synthetic backing
method.

I'm not sure whether this indicated a bug in substitution,
or, if not, what is the preferred means of performing the deep
substitution.

I've gone for a sledgehammer approach to demonstrate the
fix, but this commit introduces another problem that I
need to track down:

    squalac test/files/run/t6344.scala
    test/files/run/t6344.scala:80: error: bridge generated for member method f1: (x1: Val[Int], x2: ValAny[Int], x3: ValStr[Int], x4: ValA[Int])ValA[Int] in class C7
    which overrides method f1: (x1: Val[A], x2: ValAny[A], x3: ValStr[A], x4: ValA[A])ValA[A] in class C6
    clashes with definition of the member itself;
    both have erased type (x1: Int, x2: Object, x3: String, x4: Object)Object
      override def f1(x1: Val[Int], x2: ValAny[Int], x3: ValStr[Int], x4: ValA[Int]) =
                   ^
    one error found