Fix point merge for Marching Cubes with multiple isosurfaces
When the Marching Cubes algorithm merges points together for multiple isosurfaces, it uses an ArrayHandleZip to combine the isosurface id and the edge identification. This is to prevent merging points from different isosurfaces. However, internally this has to do an array copy. It was doing this copy with `ArrayCopy`. A recent change to that method made the copy fail for `ArrayHandleZip`. The fix is to change to `ArrayCopyDevice`. The reason why this bug was introduced was because there was no test case for this specific use. A regression test has been updated to test for this case.