Avoid divide by zero in IntervalMesh construction

If the user passes both length and ncells as int and the former is
larger than the latter, we should not choose a cellsize of zero.
Deal with tuple degree in errornorm
Add xfailing test of top and bottom bcs in extruded mixed spaces

Solve two uncoupled Poisson problems in a single mixed space with
different boundary conditions in each case.  Currently fails due to
incorrect application of top and bottom boundary conditions.
Add xfailing extruded Stokes-Poiseuille test

Solve for simple Poiseuille flow in an extruded channel using
Taylor-Hood elements.  Currently fails due to incorrect application of
boundary conditions in the pressure space.
Remove support for extruded top and bottom bcs

This never did the right thing for mixed spaces, and furthermore was
only applied for cell integrals.
Adapt to PyOP2 renaming of SparsityMap to DecoratedMap

Preparation for implementing bcs on mixed extruded spaces.
Reimplement bcs for extruded spaces

In particular, rework implicit top and bottom bcs such that they only
apply to an individual Map, rather than the par_loop as a whole.  As a
side effect, assemble no longer needs to special case for these bc
types, since they're dealt with through the normal "flag the map values"
mechanism at a firedrake level.

As a result of this change, application of top and bottom boundary
conditions in mixed spaces now does the right thing and only applies the
bc to the relevant subspace.
Test mixed space top/bottom bcs with mixed strong/weak bcs

Solve two independent Poisson problems in a single mixed space applying
strong bcs to the top and inhomogeneous weak bcs at the bottom in the
first and vice versa in the second.  Tests that we don't have pollution
of top/bottom bcs between the two spaces.