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.
Initialize `forbid_move` as
```
  std::vector<bool>   forbid_move ((distributed ? triangulation.n_vertices() : 0), false);
```
since the memory will never be used if we are not in the distributed case.