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)

This is not my code, I just moved it while refactoring. 'git blame' shows that it was previously your code, however, I looked up the commits, and you were also just moving it around. I stopped tracking the origin of this snippet further.