Initial support for quadrilateral meshes

What is included?
 * Support for reading quadrilateral meshes from supported mesh file types
 * Utility quadrilateral mesh creation
    * Boundary subdomains are supported
 * Cell integrals
    * Higher-order CG
    * HDiv and HCurl elements (manual assembly required, just as for extruded meshes)
 * Test cases for the above
 * Visualisation output

What does not work yet?
 * Facet integrals
 * Non-affine mesh elements
    * Firedrake will gladly accept and solve quadrilateral meshes with non-affine elements, however, it assumes constant Jacobian over each cell, which hurts accuracy pretty badly when this assumption is false.
 * Extruded quadrilateral meshes
 * Immersed quadrilateral meshes (not tested)

I think you are right about geometric versus topological dimension, however, we must be cautious, since this code has been "working" for a while. I was wondering if one could make a failing test case (against ```master```, which has the same code snippet), and your example with the circle manifold indeed demonstrate a case when self.ufl_cell().geometric_dimension() != self.ufl_cell().topological_dimension(), however, an extruded circle manifold does not have side boundaries. Can we still make a failing test case? (Maybe enforcing side boundary conditions on the extruded circle manifold mesh and checking if it affects values on the faces?)
Or should we just change it to topological, and assume that everything's all right if the tests pass?