Rename ir into coffee
Rename coffee's optimizations
Add tests of zero form assembly with multiple integrals
mesh: Use entity class information to construct facet sets

We were computing the correct sizes for the PyOP2 sets, but not using
them, so do that.

Note that this necessitates a disgusting hack when computing the
exterior facet boundary node map.  Since the facet sets don't have halo
information, we build a set of the correct size to carry out the
par_loop that populates the map we want rather than iterating over the
facet set.
Remove missed xfail from nonlinear helmholtz test
Merge pull request #280 from firedrakeproject/fix/parallel-0-forms

- mesh: Use entity class information to construct facet sets
- Add tests of zero form assembly with multiple integrals
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.