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.
Looking at the output of the test you should see that vertices of ghost cells that only have a common vertex with the locally owned cells aren't missed. :-)

We are sending the moved vertices of a locally owned cell if has a ghosted neighbor (first case). Furthermore all vertices on ghosted cells that have been moved locally are sent (second loop). This second case accounts for the mentioned case above. We need the first loop to mark all cells that provide the necessary information. We are assuming that cells on different processes that only toch in one vertex have a ghosted neighbor in common.

communicate_locally_moved_vertices sends all moved vertices from a locally owned cell if one of its vertices is interesting for a different processor. This way all the vertices in the ghost layer are updated.