minor doc fixes
Support providing a form to act as preconditioner

Often we know something about our problem that means we can construct a
preconditioning matrix that is different from the operator itself.
Support this in the variational formulation solve interface by allowing
the user to pass an optional Jp form used to assemble the
preconditioning operator.  If Jp is not provided, we default to using
the provided operator to construct the preconditioner as before.  Note
for consistency in naming, when building a LinearVariationalProblem we
use aP (rather than Jp).
Fix for issue #336 (incorrect ndofs for interior face loop)

Fix proposed by Lawrence: multiply number of dofs by two for interior facets.
Correctly attach nullspace to both mat and pmat
remove superfluous dot(...) with scalar-valued quantities
Merge pull request #335 from firedrakeproject/test_steady_adv_fixes

remove superfluous dot(...) with scalar-valued quantities
remove exterior_facet_topbottom code (expanded at the UFL level)
Merge pull request #329 from firedrakeproject/remove_topbottom

remove exterior_facet_topbottom code (expanded at the UFL level)
paraview output -- check for OPC, not OPE
Merge pull request #334 from firedrakeproject/paraview_ext_fixes

paraview output -- check for OPC, not OPE
add CircleManifoldMesh (gdim 2, tdim 1)
add non-extruded circumference tests
add radial-extrusion-of-circle test
add poisson test
Add section in docs on providing pmat separately
Simplify pmat construction

Don't need a needs_pmat slot, just check if Jp is None.
prettify jacobian snippets
Merge pull request #339 from firedrakeproject/prettify_snippets

prettify jacobian snippets
Merge pull request #337 from firedrakeproject/fix_ndof_inparloop_over_interior_facets

* fix_ndof_inparloop_over_interior_facets:
  Fix for issue #336 (incorrect ndofs for interior face loop)
Merge pull request #331 from firedrakeproject/circle_surface_mesh

* circle_surface_mesh:
  add poisson test
  add radial-extrusion-of-circle test
  add non-extruded circumference tests
  add CircleManifoldMesh (gdim 2, tdim 1)