Fix OpenCL partition size and shared memory requierement calculation
OpenCL, refactor to use common code for post kernel global reduction finalisation
Fix, avoid looking for things to update during init.
Stupid_mpi example, split elem_area into 2 par_loops
CUDA, minor changes in global reduction finalisation code
Plan, alias numpy as np
Laziness, refatoring:

split par_loops into 3 MPI sections  (CORE, OWNED, HALOEXEC)
introduces object to represent sections during dependency calculation
Update unit tests after laziness refactoring
stupid_mpi demo, ensure computations happen even when no option is passed
Add halo exchanges push backs

Make sure that halo exchanges are inserted as early as
possible in the trace (it could actually be earlier if
we considered only the subtrace of what is needed to
be executed on a "evaluate" call
Move Lazy evaluation code into a separate file