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 agree with Timo. This function seems to be generally useful (and one could make a separate pull request just for it, to separate concerns). If you make the assumption that each vertex is "owned" by one processor -- namely that processor of all adjacent ones with the highest MPI rank -- then this function could be written with just the first argument. In fact, it would be a reasonable to even make it a member function of `parallel::distributed::Triangulation` right away.

I think the paragraph above demonstrates a lack of understanding of why the second argument is needed altogether. Do you want to support the case where only a small number of vertices will be moved?