A PETSc inspired approach to halo swaps and other stuff for MPI+PyCUDA gpuarrays.