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 these are implemented
optimally by the compiler while for the generic call the compiler needs
to call out to libc.
Merge pull request #4783 from juliantaylor/flat-assign-improve

ENH: use copyswap instead of memmove for flat assignment