Default the kind of unconstrained meta-type variables before tcSimplifyTop
This patch fixes a long standing bug, Trac #179,
and a recently reported one, Trac #963.
The problem in both cases was an unconstrained type variable 'a', of kind
argTypeKind (printed "??") or openTypeKind ("?"). At top level we now default
the kind of such variables to liftedTypeKind ("*"). This is important because
then instance declarations can match it. The defaulting function is called
TcMType.zonkTopTyVar, and is commented. (Most of the extra lines in the
patch are comments!)