ENH: use copyswap instead of memmove for flat assignment

improves d.flat = x performance by about 35% for basic types as the
copyswap functions have known elementsizes and this are implemented
optimimally by the compiler while for the generic call the compiler
needs to call out to libc.