Allow a longer demand signature than arity

See Note [Demand analysis for trivial right-hand sides] in DmdAnal.
This allows a function with arity 2 to have a DmdSig with 3 args;
which in turn had a knock-on effect, which showed up in the test for
Trac #8963.

In fact it seems entirely reasonable, so this patch removes the
WARN and CoreLint checks that were complaining.
Refactor in worker/wrapper generation

I don't think there should be any change in behaviour, but
the code is clearer now.  Function checkSize is elimiated
in favour of doing those checks before (rather than after)
splitFun/splitThunk.
Test Trac #8963
Improve error reporting for untouchable type variables

This change adds a suggestion
    Possible fix: add a type signature for ‘f’
when we have a GADT-style definition with a
type we can't figure out.

See Note [Suggest adding a type signature] in TcErrors.

This initially came up in the discussion of Trac #8968.