Optimize word-aligned case and add more benchmark tests
Add another seperate memcpy version that does unaligned access

For smaller sizes, it turns out letting the CPU handle unaligned
memory access can reduce overhead. This version (memcpy_simple)
is optimized for the common, smaller sizes while providing good
performance for larger word-aligned regions using prefetch. It
currently overfetches, and the larger unaligned copies are slow.