Guard against meshes without exterior facets

Previously we would raise a somewhat impenetrable error if reading a
mesh with no exterior facets.  Instead just build an empty exterior
facet list.
Build correct ufl Cell on mesh

The optional argument is the geometric dimension of the cell, not the
topological dimension.
Support triangles embedded in 3D in cell dictionary
Merge remote-tracking branch 'origin/gdim-tdim' into extrusion-one-dimension