Create the Jacobian in the right place.

Move the automatic differentiation of the residual from solve to the NonlinearVariationalProblem constructor. This means that the Jacobian is still created if a user directly instantiates a NonlinearVariationalProblem. If the user passes a Jacobian, this is still honoured.