extractSubTerms (which is extracting pointer and non-pointer fields of a
closure) was computing the alignment incorrectly when aligning a 64-bit value
(e.g. a Double) on i386 by aligning it to 64-bits instead of to word size
(32-bits). This is documented in mkVirtHeapOffsetsWithPadding:
Align the start offset (eg, 2-byte value should be 2-byte aligned).
But not more than to a word.
Fixes Trac #15061