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.
It's probably going to be more work to now separate this into two PRs, but in the future: it is generally easier to review small pieces of functionality; feel free to develop these things incrementally, submit them for review separately, etc.