Laziness
Adapt unit test to lazy evaluation
Do not run plan unit tests for sequential
add lazy evaluation unit tests
Cleanup: remove unused argument
Plan, various fixes

* Fix offset computation
* No longer assume partitions' first index is a multiple of the partition size
* Move offset computation in compute_partition
* Remove MPI specific properties
* Variable names cleanup
* Make PPlan.echo __str__ method of _GenericPlan
* Fix size of working arrays
* Fix thread colour count
* Fix type of thread coloring arrays
OpenMP: push colour iteration to python level
OpenMP: derive FakePlan from _GenericPlan
We need a plan for any indirect loop

Conflicts:
	pyop2/openmp.py
Refactor base.ParLoop::compute for MPI
OpenMP, propagate changes from base.ParLoop::compute
Adapt unit tests to refactoring
Fix, adv_diff_mpi demo stall
Propagate changes to device backend common code
CUDA, propagate changes from base.ParLoop::compute
OpenCL, propagate changes from base.ParLoop::compute
Add stupid demo
Fix stupid demo

fix spelling
remove unused variable
use public method instead of manually zeroing varea Dat
Refactor _trace and _force into a class
Remove debugging code