Experimental/output dat to file

This branch implements the same functionality as #52. However, to reduce code replication we have introduced op_mpi_util.cpp with templates under the src/mpi directory. Please do comment on this as well as any other changes proposed to be merged by this pull request.