Adding timestep monitor to solvers

To monitor or save data after every timestep, a monitor can be added
to the solver. For this to work with PVODE & CVODE, they need to be run
in one_step mode, currently off by default. To enable, use the setting:

[solver]
single_step = true

(or command-line "solver:single_step=true")
Timestep monitor in new API

To enable, must set

[solver]
monitor_timestep = true

For CVODE and PVODE solvers, this switches to single step mode.

In the new API based on PhysicsModel, the monitors are protected
virtual functions which can be implemented by user code.

See examples:

monitor        : Old (C-like) API
monitor-newapi : New (OO) API
User manual section on monitors

Added brief description of timestep monitoring
Fix for CVODE solver

Only tested PVODE, but had typo in SUNDIALS cvode interface
Adding timestep monitoring

Allows monitoring of individual timesteps,
rather than output timesteps. See the user
manual section for details of how to use and enable this
feature.