Only assemble jacobian once if solver is linear

If we're linear, we know we don't need to reassemble the jacobian when
repeatedly call solve on the same LinearVariationalSolver object, so
don't.