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
Fix PETSc install instructions

Change the install instructions, as well as the install script and the
requirements, to point to our branches of petsc and petsc4py.
Merge pull request #408 from OP2/updated_petsc_install

Fix PETSc install instructions
/petsc/ -> /mapdes/ for petsc4py instructions
Use BAIJ matrices where possible

When building a matrix where rdim == cdim > 1, we now use
block-sparse (BAIJ) matrices.  This reduces the size of the sparsity
pattern we compute by a factor of rdim*cdim and allows for more
efficient matrix storage and insertion.  As a consequence, we no longer
create sequential matrices with arrays (these are not supported for
PETSc BAIJ matrices).  The parallel and sequential code therefore
becomes more closely aligned.
Fix block shuffle index for BLAS transformations

In this case, the kernel accepts a 1d array, rather than a 2d one, so
index appropriately.
Update tests in light of BAIJ changes

We no longer have any access to the matrix data array directly.
Host code gen: fix overallocation of buffer size for dats
Don't build block sparse Sparsities on device backends

The matrix formats we use on device backends don't support block
sparsities, so just pretend we don't have a block structure.