Add in mpi data types
Even more extensible
Add in MPI_SUM
Add in MPI_Allreduce
Add in auto broadcasting