Fix error recovery for pattern synonyms

Authored by simonpj on Jun 25 2018, 5:42 AM.

Description

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)