Update to containers-0.5.5.0

This adds role annotations to Map and Set and therefore addresses #8718

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
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.
codeGen: inline allocation optimization to clone array primops

The inline allocation version is 69% faster than the out-of-line
version, when cloning an array of 16 unit elements on a 64-bit
machine.

Comparing to the old primop implementations isn't straightforward. The
old version had a missing heap check that I discovered during the
development of the new version. Comparing the old and the new version
would requiring fixing the old version, which in turn means
reimplementing the equivalent of MAYBE_CG in StgCmmPrim.

Fixes #8885.
Make inline allocation threshold configurable

Add -fmax-inline-alloc-size which gives the maximum array size,
in bytes to allocate inline, exclusing header size.
Don't add an extra heap check around primops that are inlined

We always place a heap check around out-of-line primops, as they may
allocate outside of our knowledge. However, for the primops that we do
inline we only allow allocation via the standard means
(i.e. virtHp). For those primops we don't want to emit an extra heap
check.