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.