Yet more whitespace pedantry
Replace the linear equation objects and solvers with subclasses of the nonlinear cases. This reduces total code paths and also enables strong boundary conditions to work in the linear case.
Also test strong BCs via the "linear" solver route.