Group PatSyn req/prov arguments together so that they're not all over the place
Renamer for PatSynSigs: handle type variable bindings
tcCheckPatSynDecl: typechecker for pattern synonyms with user-supplied
type signatures
Update baseline shift/reduce conflict number
Add parser for pattern synonym type signatures.
Syntax is of the form

    pattern type Eq a => P a T b :: Num b => R a b

which declares a pattern synonym called P, with argument types a, T, and b.
Show foralls (when requested) in pattern synonym types
Add test cases