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.

(cherry picked from commit 848f595266268f578480ceb4ab1ce4938611c97e)
Test Trac #8963

(cherry picked from commit cc3ccf9f47c7f4684cdd2b08d0e2acf50b69bc18)

Conflicts:
	testsuite/tests/deriving/should_compile/all.T
Fix annotation reification for home package modules

The reifyAnnotation method of the Q monad correctly gathered annotations
from TCG and EPS.  Unfortunately it didn't look into the Home Package
Table.  This resulted in annotations not being found if they are in the
same package as the splice that is reifying and ghc --make is used for
compilation management.  Fix this by using the already existing
prepareAnnotations method from HscTypes.lhs that correctly searches
in HPT and EPS both.

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit 48e475e45f517896c6618d38a09b8d223f3d7585)
Add a comprehensive test for using Annotations from TH

The provided tests test both annotation generation and reification
from Template Haskell.  Both --make and compilation via separate
units (ghc -c) are tested.

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit 5f5e326c3c310c4bceb2b0bce291d3a0a3fc30d6)
rts: Fix leak of file archive handle

Issue discovered by Coverity Scan, CID 43171.

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit e597f5feb065c075c86715e24bf0ebd341fa8b9e)
rts: Fix memory leak when loading ELF objects

Issue discovered by Coverity Scan, CID 43168.

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit b7278d3d7bbe384eee7538b1e50bb741e99fb01d)