Feature/mpi

This pull request is to merge the newly created MPI back end to master. In order to apply support to run under MPI, halo creation and exchange routines were created in the OPS back end library. 

Cloverleaf was then updated to be defined on a larger structured block so that it accounts for the boundary. The reason for this is that the original AWE Cloverleaf code uses the boundary itself as the halo regions. But for OPS to be general we need to keep the application's boundary separate from the MPI halos. As a result the initial Sequential, OpenMP and CUDA versions of the application was updated.