Add shallow copy

It's a kind of medium copy right now in that it will all allocate
storage and copy an array, but if that array in turn points to other
things they will not be copied.