Fix off-by one in facet numbering

The local cell index of the second facet may be zero
Add ability to provide a renumbering for meshes

If a renumbering from new to old plex points is provided, then the plex
cells are traversed in the order provided by the renumbering, obeying
PyOP2 entity class distinctions.  If no renumbering is provided, we
instead walk the plex graph in the original order depth-first through
the cells.
Add reorder flag to mesh constructors where appropriate

Allows user to turn off reordering for specified meshes if they want
to.
Add reorder_meshes parameter and use as default

You can now control the behaviour of mesh reordering globally by setting
the reorder_meshes parameter (defaults to True).  Passing reorder not
None to a Mesh constructor overrides the default behaviour.
Add section in docs on reordering meshes
Don't reorder mesh for interior facet test

LHS assembly test relies on a particular ordering of the cells, so don't
reorder the input mesh.
Slacken tolerance in extruded laplace/neumann tests

After mesh reordering we need a slightly slacker assertion.
Merge pull request #295 from firedrakeproject/feature/mesh_renumbering

* feature/mesh_renumbering:
  Slacken tolerance in extruded laplace/neumann tests
  Don't reorder mesh for interior facet test
  Add section in docs on reordering meshes
  Add reorder_meshes parameter and use as default
  Add reorder flag to mesh constructors where appropriate
  Add ability to provide a renumbering for meshes
  Fix off-by one in facet numbering