Split kernel memcpy functions, and fix bug in copy_to_user

Split the kernel memcpy functions into sources for copy_from_user
(copy_from_user_armv6v7.S and copy_user_template_armv6v7.S),
copy_to_user (copy_to_user_armv6v7.S and copy_user_template_armv6v7.S),
and regular memcpy (memcpy_armv6v7.S and copy_template.S; the latter
file will go away and will be integrated in memcpy_armv6v7.S).

Also fix a bug in the fast path for copy_to_user that resulted in
incorrect copies for small sizes.

Modify the benchmark program to seperately benchmark/test copy_from_user
and copy_to_user.
Use memcpy from fastarm for kernel memcpy

Use the optimized memcpy from the fastarm repository for the optimized
kernel memcpy function.

Change the "push" macro to "pushbits" for compatibility with the
preferred unified ARM assembler syntax.