Changes to ghc

Changes to ghc:
commit 46d05ba03d1491cade4a3fe33f0b8c404ad3c760
Author: Johan Tibell <johan.tibell@gmail.com>
Date:   Thu Mar 13 22:24:24 2014 +0100

    Fix two issues in stg_newArrayzh

    The implementations of newArray# and newArrayArray#, stg_newArrayzh
    and stg_newArrayArrayzh, had three issues:

     * The condition for the loop that fills the array with the initial
       element was incorrect. It would write into the card table as
       well. The condition for the loop that filled the card table was
       never executed, as its condition was also wrong. In the end this
       didn't lead to any disasters as the value of the card table doesn't
       matter for newly allocated arrays.

     * The card table was unnecessarily initialized. The card table is
       only used when the array isn't copied, which new arrays always
       are. By not writing the card table at all we save some cycles.

     * The ticky allocation accounting was wrong. The second argument to
       TICK_ALLOC_PRIM is the size of the closure excluding the header
       size, but the header size was incorrectly included.

    Fixes #8867.