Print the optimal friction of a single turbine.
Add a new callback option "config.statewriter_callback", with which the user
can define a callback function which will be called at every timestep in the
forward shallow water equation with the pressure and velocity solution
as arguments. This can be used for performing diagnostics, saving the solutions
in custom file formats or other purposes.
In steady state cases do not write the intial condition to disk.
Make checkpointing in OTF more robust:

1) When using the smooth turbine representation, hash the control values to avoid excessive storage usage.
2) Print a warning and continue if the checkpoint file was not found.
Add a signal handler to memoise.

This ensures that checkpoint files are always valid if the
user pressend CTRL+C on a running program.
Merge branch 'master' into multifarm_paper

Conflicts:
	opentidalfarm/memoize.py
	opentidalfarm/shallow_water_model.py