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.
get_coarse_cell_to_p4est_tree is used to collect the data that will be sent,
get_p4est_tree_to_coarse_cell is used to get from the sent data to the deal cells. Since get_p4est_tree_to_coarse_cell has already been exposed, I thought this would be fine as well.
At least this seems to be convenient.