Rename ir into coffee
Rename coffee's optimizations
Rewrite _map_cache to avoid np.in1d and where.

The resulting code appears to just disappear from the profiles.

Also take the opportunity to refactor slightly so that extruded is no
longer a special case in boundary map construction.
Support bcs with multiple regions in _needs_reassembly

This check was previously assuming that a DirichletBC only has a
single integer as its sub_domain.
Add test for matrix assembly with multi-domain bc
Merge pull request #291 from firedrakeproject/fix/bcs-with-multiple-regions

Support bcs with multiple regions in _needs_reassembly

This check was previously assuming that a DirichletBC only has a
single integer as its sub_domain. Also add a test for it.
Merge pull request #290 from firedrakeproject/boundary_efficiency

Rewrite _map_cache to avoid np.in1d and where.

Also take the opportunity to refactor slightly so that extruded is no
longer a special case in boundary map construction.
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.