Avoid segfault when deleting petsc options
Don't need to update solver parameters on every solve

Since we now copy the dict, the only way the user may update the
parameters is by using the public property setter, which already
arranges to call update_parameters.
Fix assembly cache MatCopy in parallel

The non-zero pattern is different, because PETSc compresses out columns
in the off-diagonal piece.
Test manifolds in parallel as well as serial

The RT integrals needs the cell orientation in the halo to be correct,
which is now tested in parallel.
Initialise cell_orientations correctly in parallel

We define cell orientations on the cell set of the mesh, but this set
has no halo object (we can only do halo exchanges on dof sets).  Hence,
in parallel, the halo region of the initialised cell orientations was
incorrect.  Instead, build the cell orientations on the DG0 function and
then copy the resulting values back into the Dat defined on the cell
set.
Merge pull request #272 from firedrakeproject/fix/parallel-cell-orientations

Initialise the cell_orientations Dat with correct halo data in parallel.
Revert "Don't need to update solver parameters on every solve"

It turns out we do need to do this, if the user builds a solver object
and sets an entry in the parameters dict then this change broke that use
case.

This reverts commit 45f772d61e276918024e6955618d24a01ea119af.
firedrake-clean: also prompt to clear pyop2 cache
firedrake-clean: also clear mesh cache
Add docs section on cleaning caches in download
Merge pull request #253 from firedrakeproject/cache_clean

Document how to clean caches and make firedrake-clean nuke everything.
added some extrusion demos. mixed Poisson ones fail, though grad should work