testsuite: add signal_exit_code function to the driver

Summary:
New function signal_exit_code hides differences between target platforms
handling of fatal error signals and the applications' exit codes. E.g.
on Linux the application exit code which receives fatal error signal
is encoded as 128 + signal value. On the other hand on Solaris
the application exit code is signal value alone.

Test Plan: validated on Linux and tested on Solaris

Reviewers: austin, simonmar

Reviewed By: simonmar

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D122
Update perf number for T5642

This  +4% increase (from -1% before) was caused by 1fc60ea. But that
commit did not cause any other regressions, so I’m not investigating
further.
Update Haddock to attoparsec-0.12.1. Adjust perf.

Please adjust the perf number on your platform if/when it fails. It
should improve slightly. Updates submodule.
Implement the final change to INCOHERENT from Trac #9242

The change here is to make INCOHERENT slightly more permissive:

  if the selected candidate is incoherent
  then ignore all unifying candidates

This allows us to move the {-# INCOHERENT #-} pragma from
  from   instance Typeable (f a)
  to     Typeable (n:Nat) and Typable (s:Symbol)
where it belongs, and where Trac #9242 said it should be.

I don't think this will affect anyone.

I've updated the user manual.
Fix path in cabal file

Update Haddock submodule
Test #9371 (indexed-types/should_fail/T9371)
Fix Trac #9371.

This was very simple: lists of different lengths are
*maybe* apart, not *surely* apart.
Comments only: explain that TauTv sometimes gets sigma-types.
Remove tcInfExpr (#9404)

It seems that tcInfExpr (a special case for inferring a type
without a known result type) is unnecessary. This removes it
in favor of using the main tcExpr exclusively.
Test #9404 (typecheck/should_compile/T9404)
Fix #9415.

Abort typechecking when we detect a superclass cycle error, as
ambiguity checking in the presence of superclass cycle errors can
cause a loop.
Test #9415 (typecheck/should_fail/T9415)
Test #9200. (polykinds/T9200)
Change definition of CUSK for data and class definitions (#9200).

Now, a CUSK is when (and only when) all type variables are annotated.
This allows classes to participate in polymorphic recursion.
Added more testing for #9200. (polykinds/T9200b)
Change treatment of CUSKs for synonyms and families (#9200).
Remove NonParametricKinds (#9200)

This commit also removes 'KindCheckingStrategy' and related gubbins,
instead including the notion of a CUSK into HsDecls.
Update manual (#9200).
Testsuite wibbles around #9200