Test expression assignment doesn't produce bad values

If we assign to a mixed function from an indexed function, we can't just
put zero in the rhs, since it is not the identity for division and
multiplication.
Insert correct identity value in split expressions

If we're using this expression as the rhs of an assignment by pointwise
multiplication or division, the correct identity value is 1, not 0.
Add Function.sub

Return the ith sub-function of a Function possibly defined on a mixed
function space.
Implement assignment to subfunctions

If the LHS of an assignment is indexed, we know where we want to write
the expression into, so do that.
Use new PyOP2 linear algebra operations
Implement nullspace.orthogonalize
Build vector space for mixed basis from components

It's convenient to specify the individual pieces.  If we pass a function
space in to the mixed basis constructor we can build the space we need
to project out of monolithic mixed operators.