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
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
Construct FacetNormal on domain not cell
When building finite elements, use ufl_domain not ufl_cell.
Coordinates live in domain().data().coordinates
measure().integral_type() -> integral_type()
No more integral.measure()
argument .count() -> .number()