array: support simultaneous alien and Lua array objects.

* lib/std/array.lua (alien_type): A set of valid types for
arrays to be implemented with alien.array.
(topointer): Default offset to 1.
(setzero): Use memset for alien arrays, direct element buffer
copying for Lua arrays.
(shift, unshift): Use memmove for manipulating alien.arrays, or
else table.insert and table.remove for Lua tables.
(copy): Remove.
(clone): Use memmove for copying elements between same-size
element alien arrays, direct element buffer copying otherwise.
(_init): Simplify accordingly.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>