Make wildcard meta vars with the right level number
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