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)

Ah, I see what's going on.  This is used for identification of "boundary" dofs.  On extruded meshes, we only identify the "side" facet boundary dofs in this way, which is why it's only the (1, 1) respectively (0, 1) facets that you care about.  Add a note in the docstring?

```
.. note::

   This only returns the dimension of the "side" (vertical) facets, not the "top" or "bottom" (horizontal) facets.
```