Add test that different linear solve paths are equivalent

solve(a == L, out) should be the same as
solve(assemble(a), out, assemble(L))