Add word aligned memcpy tests to benchmark program
Add ARM_ALIGN option to optimized assembler memcpy

When ARM_ALIGN is defined as 32, memcpy_armv5te_no_overfetch will
use 32-byte aligned block writes instead of 16-byte aligned block
writes (a block write is always 32 bytes). At the moment this
only applies when the source and destination have the same
alignment within a word.

32-byte aligned block writes improves performance for copying
regions of memory that are word-aligned case and may be important
for normal memcpy usage.

Note that the current version of memcpy_armv5te_no_overfetch has
a performance regression for sizes < 36 bytes when ARM_ALIGN is
defined as 32.
Add comparison results for ARM_ALIGN setting
Add optimization to armv5te memcpy for small sizes
Make -DARM_ALIGN=32 the default setting in the Makefile
Add benchmark for word-aligned copy of 30 bytes
Fix typo in assembler function when ARM_ALIGN=32
Add half-word copier to assembler function