Simplify taking the annotated constraints into account

No longer create an implication, just infer the type from scratch, add the
annotated constraints that weren't inferred to theta, and use `tcSubType` to
'fix' things

Unfortunately there's still a problem with the ev_binds I believe. Compile the
example below with -dcore-lint. It does work when annotating just Eq a in
showAndEq2's context, but not when annotating just Show a. It's a problem
with the order of the arguments in Core.

{-# LANGUAGE PartialTypeSignatures #-}
module Problem1 where

showAndEq :: _ => a -> String
showAndEq x = show x ++ show (x == x)

showAndEq2 :: (Show a, _) => a -> String
showAndEq2 x = showAndEq x
Properly maintain the MetaTvInv invariant

Wrap the (1) creation of meta vars for wildcards and the (2) type checking of
the signature (tcHsSigType) in a call to captureUntouchables. (1) had to be in
captureUntouchables for the meta vars to be touchable when type-checking the
body of the function. (2) is now also in the same call because the invariant
was asserted (and didn't hold) when unifying kind variables, which happens
during kind-checking of a type signature.