Fixing problem related to variances of higher-kinded types.

FCause was a stupid typo in Definitions. While at it, added a test that
variances of lambda type arguments agree with the variance of the type parameter.
Better explanation for -Ycheck / types differ.

Now includes a failed subtype derivation explanattion in case type after
tree checking differs from original type.
Three fixes to Types

1. Compute joint type info (between refinedInfo and parent info) for type
members of refined type. We cannot assume that refined types always have
later infos subsume earlier ones. Test case in partialApplications.scala.

2. Lookup refined now also extends to projections over RefiendThis types.

3. Bring hashcode and equals in line for RefinedThis types.
Fixing <:< for RefinedTypes

We are not allowed to "forget" bindings as we do to the left in a subtype
comparison of refined types. Test issulstrating this in refinedSubtyping.scala
re-enabling -Ycheck:front