Rename ir into coffee
Rename coffee's optimizations
Add section on installing paraview
Merge pull request #279 from firedrakeproject/coffee-restructuring

Use coffee instead of ir
Merge pull request #294 from firedrakeproject/doc/mac_install

* doc/mac_install:
  Add section on installing paraview
Fix off-by one in facet numbering

The local cell index of the second facet may be zero
Add ability to provide a renumbering for meshes

If a renumbering from new to old plex points is provided, then the plex
cells are traversed in the order provided by the renumbering, obeying
PyOP2 entity class distinctions.  If no renumbering is provided, we
instead walk the plex graph in the original order depth-first through
the cells.
Add reorder flag to mesh constructors where appropriate

Allows user to turn off reordering for specified meshes if they want
to.
Add reorder_meshes parameter and use as default

You can now control the behaviour of mesh reordering globally by setting
the reorder_meshes parameter (defaults to True).  Passing reorder not
None to a Mesh constructor overrides the default behaviour.
Add section in docs on reordering meshes
Don't reorder mesh for interior facet test

LHS assembly test relies on a particular ordering of the cells, so don't
reorder the input mesh.
Slacken tolerance in extruded laplace/neumann tests

After mesh reordering we need a slightly slacker assertion.
Merge pull request #295 from firedrakeproject/feature/mesh_renumbering

* feature/mesh_renumbering:
  Slacken tolerance in extruded laplace/neumann tests
  Don't reorder mesh for interior facet test
  Add section in docs on reordering meshes
  Add reorder_meshes parameter and use as default
  Add reorder flag to mesh constructors where appropriate
  Add ability to provide a renumbering for meshes
  Fix off-by one in facet numbering
domain_data -> subdomain_data
update ufl Argument counts from -2, -1 to 0, 1
domain_type -> integral_type
domain_id -> subdomain_id
integral.measure() deprecation changes
Add ufl_domain and ufl_id to Mesh

We build a ufl.Domain out of the coordinate field and use this to
construct finite element instances.  Because the coordinate field needs
a finite element, we perform a complicated bootstrapping procedure
whereby we first build a Domain on the Mesh's Cell with a data slot of
the Mesh itself (such that later on we can find the coordinates in
integrals) and use this Domain to build the finite element for the
coordinate field.  We then go back and replace the domain on the mesh
with a new one which is built on top the coordinate field.  Finally, we
replace the coordinate field itself with a new field sharing the same
data but this time built on a finite element with an actual domain (such
that it can be used a coefficient everywhere).
Save extruded measures on extruded meshes