Makes SD mpi program uses memory more economically

Uses mpi_comm_split to create a matrix-like domain topology
and mpi_scatterv to distribute only the necessary pieces of pos and vel
Fixes a bug that deallocates non-allocated arrays (pos and vel) in SD

(in spatialDecompose_mpi.f90)
Merge branch 'scatter-sd'