Changed timesteppers to work with residual functions

Required for Gilbert form of LLG.

Seems to result in cleaner code.

Closer to how oomph-lib works.

Also added more docstrings and tidied up tests.