Add a synchronous redistribute option
Adds an option to perform the redistribute phase using synchronous MPI calls.
The redistribute phase potentially sends a lot of particle data between nodes and has been seen to fail due to memory limits for the whole machine, not just SWIFT. This because of the large cache usage by the transport layers. Switching this option on can help in these instances, but at the cost of a substantial slowdown.