Fix dependant => dependent
SI-6966 Fix regression in implicit resolution

Reverts this line: 9c09c17#L50L671. That value was
apparantly discarded intentionally.
SI-5189 detect unsoundness when inferring type of match

GADT skolems encode type slack that results from pattern matching on variant type constructors
I thought they would not longer be relevant after cases have been typed,
and since they caused weird issues with the old pattern matcher, I deskolemized in typedCase

however, when we don't have an expected type for the match, we need to keep the skolems around
until the skolemized type makes it out of the match and it becomes the result of type inference for that match
when you do have an expected type, it will propagate to the case-level and the confrontation will thus
already take place when typing individual cases
remove hack for old patmat unnecessary in 2.11
SI-6961 maintain structural sharing in list serialization.

Applying Jan Vanek's patch that makes list serialization maintain
structural sharing, as well as avoids a stack overflow for big lists.
See a more detailed explanation in the bugtracker.

Additionally, deserialization of lists serialized with Scala 2.10.1
and 2.9.x should work.
This legacy deserialization is embodied in the methods `readObject_2_10_0`
and `readObject_2_9_x`.

Factored out setting and resetting of the SerializeControl instance
into the companion object, using @inline to eliminate the closure.