test: Fix Map construction values

Dataset only has size 1, so the entries must all be zero, not one.
Set block sizes on Mats and LGMaps

This means we use less data in the VFS case, and we can use
MatSetValuesBlocked when filling with zeros.
Add function to fully fill a PETSc matrix with zeros

After preallocating the correct amount of space, we fill the entire
matrix with zeros so that on first assembly PETSc does not compact out
some of the space we said we'd need.
Fully fill matrices with zeros on construction

The sparsity pattern we specify is the right one, but PETSc compresses
the allocation on matrix assembly to the number of "used" nonzeros.
This can result in requiring reallocation if (for example) the values
change because we're actually assembling the linearisation of a
non-linear operator.  To avoid this, when we first build a matrix, fill
all the entries we might ever use with zeros.
Rework sparsity construction

Unify sparsity construction for the MPI and non-MPI cases.
Additionally, simplify the extruded sparsity construction code to reduce
repetition.  As an additional bonus, we now correctly build sparsity
patterns for all extruded cases in parallel as well as serial.

Performance is unchanged from the previous code, with some marginal
improvements in parallel extruded VFS cases (but it's basically a
wash).
Cythonizing the sparsity extension requires petsc4py include path
Merge pull request #401 from OP2/mat-zeros

* mat-zeros:
  Cythonizing the sparsity extension requires petsc4py include path
  Rework sparsity construction
  Fully fill matrices with zeros on construction
  Add function to fully fill a PETSc matrix with zeros
  Set block sizes on Mats and LGMaps
  test: Fix Map construction values
COFFEE: fix autotuner's imports
COFFEE: fix bugs with blas code generation
COFFEE: fix zero-removal with dense arrays
fix error in petsc4py instructions
README: install PETSc from a tarball and remove -e
README: petsc4py does not support develop installs
Modify the installation instructions

These changes are designed to make the installation instructions
clearer. Key features are:

* Dependencies gathered together.
* Hints which turn into links in HTML to help users skip to the right
  bits.
* Fewer installation commands for each user.
* Rejigged heading structure to make it clear which parts belong together.
Merge pull request #405 from OP2/installation-instructions

Modify the installation instructions
Merge pull request #403 from OP2/fix-blas

Fix blas and zero-removal algorithm
Fix for changed confest.py discovery in py.test 2.6.3

See: https://mail.python.org/pipermail/pytest-dev/2014-September/002617.html
experimentally point at the mapdes petsc repos
Another attempt at our petsc branches
Add support for "local" par_loops

If we pass the flag only_local=True to a par_loop it will only compute
over owned set entities (even in the case of indirect loops).  Once the
computation has finished, Dats accessed via INC perform a halo exchange
to /gather/ remote increments into their local data.

Such loops only make sense if none of the Args are Mats and if Dats are
only ever accessed as either INC or READ, errors are raised in other
cases.