state: Add simple range iterations and get_time() etc.

This couples each level to the controller, and lets the controller keep
track of, eg, which step and iteration is being operated on.  This
allows sweepers etc to get at this data consistently, and simplifies
various method signatures.
advection_diffusion: Save errors in a map: step, iter -> error.
tests: Add test-advection-diffusion.cpp.

This provides a unit test for the errors of the vanilla SDC algorithm.

Signed-off-by: Matthew Emmett <memmett@gmail.com>
examples: Fix return type of get_errors().

Signed-off-by: Matthew Emmett <memmett@gmail.com>
tests: Add SerialMLSDC test.

Signed-off-by: Matthew Emmett <memmett@gmail.com>
Merge branch 'release/v0.1.0' into feature/state

Signed-off-by: Matthew Emmett <memmett@gmail.com>

Conflicts:
	examples/advection_diffusion/advection_diffusion_sweeper.hpp
	examples/advection_diffusion/serial_mlsdc.cpp
	examples/advection_diffusion/vanilla_sdc.cpp
	include/pfasst/encap/imex_sweeper.hpp
controller: Change step/iteration state management.

Rework tracking of current time, step, and iteration.

Signed-off-by: Matthew Emmett <memmett@gmail.com>
controller: Change various `int`s to `size_t`s.
Merge pull request #37 from memmett/feature/state

Add unit tests for AdvectionDiffusion example and change how state is passed to sweepers.