Add variants for halfword and word-aligned memcpy operations

When the source and destination are guaranteed to be halfword or
word aligned, and the size is a multiple of halfwords or words
respectively, several optimizations are possible and the size of
the memcpy function is reduced. This is particularly useful for
16bpp or 32bpp framebuffer/pixel operations.

At the moment, they only defined for the RPi and haven't been
properly tested yet.