Test for correct convergence order in nonlinear helmholtz

Also remove xfail on parallel test.
Slacken tolerance in weakdiv-weakcurl feec test
Fix send/receive of SF remote sends for Halo calculation

We can use send/recv pairs since that may cause deadlock.  Instead, use
isend/irecv/wait.  First send size of arrays and then subsequently the
actual data.
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.
fixup ortho
fixup mvsb