DMPlex: Always build a vertex numbering

Since this calls the collective types.FunctionSpace() it should not
be done inside any conditionals.
DMPlex: Loop over all ranks when building Halo

We need to loop over all ranks when exchanging `remote_sends` in order
to avoid hanging if we have empty partitions.
Fix output of VFS on interval
Fix output of HDiv/HCurl fields

The test for if they were CG or not was wrong.
Fix DG coordinate field for periodic interval

Ugly hack until we get fed it from DMPlex.  Note that this is probably
wrong when symbolic geometry stuff lands.
Add some simple div-free tests for extruded intervals
Merge pull request #219 from firedrakeproject/fix/empty-partitions

Fixes to avoid hanging if we have empty partitions in parallel.
Apply the patch in issue #149 correctly.

The line new_vtk << function in io.py
was meant to be replaced by
new_vtk << (function, self._time_step).
Add __all__ to all modules that are imported in __init__

To avoid polluting the firedrake namespace, ensure all modules only
export their public symbols.
Broadcast cell and coordinate shape in from_cell_list

These have to be consistent across all processes.
Add support for top and bottom facet zero form integrals.
Add support for extruded exterior facet integrals.
Add horizontal facet integral with temporary fix for avoiding double jacobian kernels.
Attempt to add interior vertical facets.
Interior facet integrals for zero forms.
Add changes to support the sparsity building for horizontal facets
Top, bottom and exterior vertical facets pass.
Eliminate extra global args not needed for new FFC kernel types.
Use ON_TOP, ON_BOTTOM instead of magic numbers.
Eliminate bottom_set from _Facets constructor. Drop use of kwargs.