Merging in of the viscous free surface branch.
This implements the free surface algorithm that enforces a no normal stress condition at the free surface, instead of p=0. For more details, see http://dx.doi.org/10.1016/j.pepi.2012.01.001
To use, simply add the no_normal_stress option under the free_surface boundary condition and switch the FreeSurface field from diagnostic to prognostic.
As this is required for testing, this commit also introduces the option to apply remove_null_space seperately for components of a vector solve.
This is a Team Stokes production. Thanks to Simon F. for reviewing.