Parallel::gather_packed_range() implementation
implement MeshCommunication::gather(), and refactor allgather() to use it.
Merge pull request #193 from benkirk/meshcommunication_gather

MeshCommunication::gather()