Fix the argument generated by derivative.

We previously had a false assumption that taking a Gateaux derivative
always results in adding a TestFunction. Now we add the next unused
Argument to the form, which is always correct.
ffc_interface: grab coefficients from preprocessed form

The coefficients FFC sees are of the preprocessed form, so we can't grab
them from the original form, since those may not match up.
Fix projection for dolfin-adjoint

Introduce a variable holding the solve function to be used by
project. This enables dolfin-adjoint to overload the solve call.