Fix error recovery for pattern synonyms
As Trac Trac #15289 showed, we were carrying on after a type error
in a pattern synonym, and then crashing. This patch improves
error handling for pattern synonyms.
I also moved a bit of code from TcBinds into TcPatSyn, which
helpfully narrows the API.
(cherry picked from commit 2896082ec79f02b6388e038a8dae6cb22fe72dfc)