Explicitly ask for ILU shifts on singular solves

PETSc changed their ILU defaults to no longer do any shifts to avoid
zero pivots.
Merge pull request #393 from firedrakeproject/fix-petsc-ilu

* fix-petsc-ilu:
  Explicitly ask for ILU shifts on singular solves
Move utility mesh constructors into separate file
Match UnitTri and UnitTet to UFC numbering
Simplify Mesh init

Make top-level calling sequence simpler, and simplify from_file
constructors.
Turn utility meshes into functions, not classes

Additionally, add more utility meshes in addition to UnitXXXMesh we now
have XXXMesh for 2D and 3D meshes, along with RectangleMesh and
BoxMesh.
Rework docs on meshes to match API changes
Always generated structured 2D meshes

Now that we can pass options to the mesh generator, we can tell Triangle
to just use the points we give it and mesh regularly, rather than adding
Steiner points to maintain some minimum angle constraint.
Remove weak nullspace test

This indefiniteness is very sensitive to mesh ordering which was changed
in the previous commit.