Add Makefile rules to generate pre-processed source.

Someone awkwardly, @objflags@ can contain -DMVM_BUILD_SHARED, which affects the
pre-processed source, so for correctness that needs to be in the CPP command
line, even if it means that we're also sucking in linker-only flags.

It seems that .i is used everywhere, so KISS implies no need for it to be a
setup option.
Add Makefile rules to generate assembler.

Again, as @objflags@ can contain -DMVM_BUILD_SHARED it needs to be in the
command line.

Win32 doesn't quite work out, since the /GL used to enable link time
code generation cause the compiler to decide it won't bother spitting
out the .asm file. Hack that flag out of the Makefile and an assembly
file is, indeed, produced.
Support for ARMv6. Don't try to read unaligned doubles or long longs.

Specifically, ARMv6 will SIGBUS for an unaligned double, and generate a CPU
exception for an unaligned long long, which Linux defaults to catching with a
fixup handler. This means that we can't probe for unaligned long long reads,
as ARMv6 Linux systems would pass the probe, but we wouldn't realise we had
chosen a horribly inefficient approach.

This commit replaces the macros GET_I64 and GET_N64 with inline functions
MVM_BC_get_I64 and MVM_BC_get_N64, and removes the unused macro GET_U64.
It adds probing code to determine CPU architecture, which is hopefully robust
against all the crazy that OSes try to throw at us. The probing code is ready
for platforms where unaligned 32 bit reads are bad, but the C code is not yet,
as we don't yet pass tests on any that I have access to.