Fix distort_random for distributed meshes

Previously, distort_random produced unconnected meshes for distributed meshes. Now we don't move vertices that belong to two or more different processes. The resulting mesh is connected.
I don't know whether it's relevant here, but every cell that shares *at least a vertex* with a locally owned cell is a ghost cell. Ghost cells need not share edges or faces with locally owned cells. In other words, if you own one cell of a 2x2x2 mesh, then all 7 others are ghost cells.