Add memcpy variants with differing block write sizes

Add non-overfetching assembler memcpy variants that write 8 bytes
at a time instead of 16 bytes. Depending on the size of the write
buffers in the CPU and whether the memory cached, this could make
a difference. ARM_ALIGN is dropped, instead seperate variants are
defined in arm_asm.S for each alignment option using macros.

The benchmark program has been extended to make use of different
memcpy variants, which are configurable with the --memcpy option.