lib: introduce some memory copy macros and functions
https://github.com/AndreiLux/Perseus-UNIVERSAL5410/commit/431214d4ad85018a798dec9463e66c9f6c5c5789
The kernel's memcpy and memmove is very inefficient. But the glibc version is quite fast, in some cases it is 10 times faster than the kernel version. So I introduce some memory copy macros and functions of the glibc to improve the kernel version's performance.
The strategy of the memory functions is:
1. Copy bytes until the destination pointer is aligned.
2. Copy words in unrolled loops.  If the source and destination are not aligned
   in the same way, use word memory operations, but shift and merge two read
   words before writing.
3. Copy the few remaining bytes.

With this patch:
lib: improve the performance of memcpy and memmove of the general version
https://github.com/AndreiLux/Perseus-UNIVERSAL5410/commit/18bdbf1b4e150c0772097134c6f753b7ca4c7705
The performance of memcpy and memmove of the general version is very inefficient, this patch improved them.