Fix Trac #7280 by zonking the final_quant_candidates in simplifyInfer

This fix is only needed on the branch; HEAD already works differently
(and correctly).
Merge #7050 fix

Based on

    commit ba8fd081ba9b222dd5f93604d7deeaca372e4511
    Author: Simon Peyton Jones <simonpj@microsoft.com>
    Date:   Mon Sep 17 18:22:10 2012 +0100

    Make the call to chooseBoxingStrategy lazy again
Fix off-by-one (#7227)
Fail nicely when encountering an invalid bang annotation (#7210)
Two fixes to kind unification

* Don't unify a kind signature-variable with non-tyvar kind
* Don't allow a kind variable to appear in a type
  (Trac #7224)
Remember to zonk the skolems of an implication

Their kinds may contain kind unification variables!

This patch fixes Trac #7230.
Fix Trac #7237; mixup with empty tuples

When converting from Core to STG, we swith pattern matching on
on a *nullary* unboxed tuple into matching using a PrimAlt on RealWorld#
   case e (RealWorld#) of { DEFAULT -> ... }
This semms messy to me, but it works.  There was a bug in that we were
changing to PrimAlt, but not using a DEFAULT AltCon.
Bind "given" evidence to a variable, always

This was being done in xCtFlavor, but not in rewriteCtFlavor,
resulting in Trac #7238.

See Note [Bind new Givens immediately] in TcSMonad and
and Note [Coercion evidence terms] in TcEvidence.
Print literal integers in External Core.
Add missing case in TcUnify.matchExpectedFunKind

This fixes Trac #7278
Use the right arch name in the Windows installer filename
Fix typo in the documentation of CApiFFI

Signed-off-by: Gabor Greif <ggreif@gmail.com>
Typo
fix obvious typos

these can go into the release 7.6.2 too, I guess
Use perl interpreter in the PATH.
Cache the result of countOccupied(gen->large_objects) as gen->n_large_words (#7257)

The program in #7257 was spending 90% of its time counting the live
data in gen->large_objects.  We already avoid doing this for small
objects, but in this example the old generation was full of large
objects (actually pinned ByteStrings).

MERGED from commit 016fd74d6517512b62b36ff12cdccf2e723a0fb3
Reduce fragmentation when using +RTS -H (with or without a size)

MERGED from commit a68df77ede928e6c7790dacb5925625792a904d3
Some further tweaks to reduce fragmentation when allocating the nursery

MERGED from commit a8179622f84bbd52e127a9596d2d4a918ca64e0c
Allow allocNursery() to allocate single blocks (#7257)

Forcing large allocations here can creates serious fragmentation in
some cases, and since the large allocations are only a small
optimisation we should allow the nursery to hoover up small blocks
before allocating large chunks.

MERGED from commit 1f5d83648dfda39d999eb8a9e8192339b3eea540
Include pinned memory in the stats for allocated memory

This broke with the changes to the pinned object handling in
67f4ab7e6b7705a9d617c6109a8c5434ede13cae.

MERGED from commit c19f2e320a575a66d31c83d846ce3cc954c4ab3b