Track loops sorrounding assembly
Add expression splitting
Check that the vectorizer has been correctly initialized
Change version of PETSc in the install script

PETSc 3.4 a la amcg is no longer sufficent. This changes the install
script to follow the currently required branches.
Update the manual install instructions
install.sh: remove libhdf5-openmpi-7 dependency
Update requirements.txt, requirements-minimal.txt
Update tox.ini
Travis: don't install PETSc from binary package
Merge pull request #337 from OP2/post_fluidity_install

Install instructions for a post-Fluidity world
Plan: minor refactoring of loc_map computation
Plan: some fixes and documentation for staging info
Plan: add some documentation for colouring
Plan: add docstrings for properties
Docs: add plan documentation
Docs: add PyOP2 colouring diagram
Docs: insert PyOP2 colouring diagram into plan
Merge pull request #335 from OP2/doc/plan

Add plan documentation
Make par_loops properly collective again

On CPUs, code compilation is now a collective operation (we only build
the code on rank zero).  As a result, we can't short circuit
computations for zero-sized sets since we may be left with an empty code
cache.

On device backends, _compute now returns early if the partition is zero
sized, since the Plan does not know how to deal with zero sized
partitions.
Merge pull request #340 from OP2/fix/parallel_compilation

CPU code compilation is collective and therefore compute calls in the
par_loop must all hit the compilation code path, even if the iteration
space is zero-sized.