Moved all form construction outside of the time-stepping loop.

Also:
* use the recent improvements to Expression to provide values by name (e.g. for the time variable 't').
* construct the solver objects outside of the time-stepping loop.
Don't pass 't' in as an argument to 'val'.
Revert to 'preonly' for 'fieldsplit_0_ksp_type' and 'fieldsplit_1_ksp_type'.
Don't pass in 't' to 'val'.
Don't pass in 't' to 'val'.
Don't pass in 't' to 'val'.
Actually, do pass in 't' to 'val'.