Fix linked list manipulation code (buggy on consecutive deletion)

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Make BlockAlloc.c comment slightly more accurate (fixes #8491)

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Instead of tracking Origin in LHsBindsLR, track it in MatchGroup
Typos in comments
Update Haddock submodule to follow LHsBindsLR changes

This submodule update was forgotten to be included in
eeaea2df3fa585db503034f419c6e4331a4d8a84

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Better layout for coercion error message
Tidy up trace message
A bit more trace information in an ASSERT failure
Honour the untouchability of kind variables

Trac #8985 showed up a major shortcoming in the kind unifier: it was
ignoring untoucability.  This has unpredictably-bad consequences;
notably, the skolem-escape check can fail.

There were two things wrong
 * TcRnMonad.isTouchableTcM was returning a constant value for kind variables
   (wrong), and even worse the constant was back-to-front (it was always False).

 * We weren't even calling isTouchableTcM in TcType.unifyKindX.

I'm not sure how this ever worked.

Merge to 7.8.3 in due course.
Test Trac #8985
Store IfExtNames for PatSyn matchers and wrappers in interface file
Fold mkPatSyn{Matcher,Wrapper}Id into TcPatSyn
Reconstruct patsyn type from matcher type