DMPlex: Generating UnitSquare/CubeMesh from DMPlex object

All information required to build the function space is now derived from
the DMPlex object stored with the firedrake mesh. This currently works
only in serial with non-extruded meshes and it also changes the internal
facet numbering, but the UnitSquare/CubeMesh is now generated on-the-fly
and does not rely on the Fluidity interface anymore.
DMPlex: Generating cell->DoF mapping from DMPlex

This change enables higher order function spaces. It creates a
PetscSection describing the DMPlex->DoF mapping from the FIAT element. It
also adds a Vec of DoF indices to the mesh object that can be used with
the DMPlex and the dof_mapping to generate the DoFs of a DMPlex closure.