Added cartesian communicator.

Added the 2D process layout to the code and now have it writing sensible restart
files under the global-parallel strategy.