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 would move the unpacking into the namespace above so the code that packs and unpacks is closer together.