Default some COFFEE optimizations to on
Set default optimization level
Change coffee's modules names
Merge pull request #375 from firedrakeproject/fix-coffee-imports

* fix-coffee-imports:
  Change coffee's modules names
Bump version to 0.12.0

Also adapt ffc compatibility version.
Merge pull request #370 from firedrakeproject/turn-on-coffee-opts

* turn-on-coffee-opts:
  Set default optimization level
  Default some COFFEE optimizations to on
Save mesh radius for embedded n-spheres
Add optional distribute flag to mesh creation

If distribute is False, the mesh is already distributed and we should
not do so again.
Stash a vertex numbering on the mesh
Remove unused mesh._cells array

We only need the cell classes.
Create empty interior facet object with kind "interior"

Previously we used "exterior".
Start of low-level multigrid support

Add functionality to create map from coarse cells to refined cells in a
mesh.
Add computation of consistent orientations

Compute a consistent orientation of both cells and vertices of the fine
cells in the coarse to fine cell map.
Implement creation of coarse to fine cell_node_maps

On triangles, we can automate the creation of a coarse to fine cell node
map for any nodal basis with a bit of trickery.
Only label facets if mesh is not already distributed

Labelling exterior facets is only possible in serial (where the boundary
of the mesh really is the boundary).  If we're creating a mesh from an
already distributed plex, we don't want to relabel the facets.
Add functionality to filter labels on refined meshes

Plex refinement marks all points "underneath" as a refined entity with
that label.  But we only want marked facets on the refined mesh to carry
labels over, so add ability to remove these labels from other entities.
Add MeshHierarchy and ExtrudedMeshHierarchy

The former takes an existing mesh and refines it uniformly a specified
number of levels.  The latter builds a sequence of extruded meshes on an
existing mesh hierarchy.
Save cell and vertex orientations in mesh hierarchy

This will be necessary when we come to build function space hierarchies.
Add basic hierarchies of function spaces

These are basically just bags of function spaces on each level.
Add ability to get restriction and injection weights