Ensure that MVMCompUnit can correctly free data_start.

This gets slightly complicated because the memory may have been allocated by
malloc or by mmap, depending on the origin of the bytecode.
Previously the memory was just leaked
MVMStaticFrame now supports bytecode pointing to a private malloc()ed copy.

The private copy will be used to hold an endian-swapped version of the bytecode
on big endian systems.
Proof of concept for endian-swapping - copy the bytecode with ensure_bytes()

By doing this on a little endian platform, we demonstrate that it will be
sufficient to implement endian swapping within ensure_bytes() alone, as all
bytecode run "passes through" this one function.
Do proper endian correction

[Just the serialisation.c and compiler.c fixes]
On big endian platforms, swap endiannes in ensure_bytes() while validating.

Astoundingly, this is all that is needed to get NQP to build on 64 bit POWER,
and pass all tests other than nativecall. (Which the backtrace suggests is
because dyncall is using ppc32). Oh, and Rakudo builds and passes all tests.

Certainly it's not the most efficient thing, compiling endian-swapped bytecode
and serialisation data in memory, only to swap it back immediately to run it.
"The marvel is not that the bear dances well, but that the bear dances at all."