Add notification for timestep completed event

When the underlaying simulator completes a timestep, everyone that has
registered in the wrapper will receive the signal as well. This happens
after we have notified the state about the changes.
Downscale to 3D state when sync() method is called

If a client of the wrapper needs to access the 3D state for reporting,
it should call the sync() method which downscales the state on-demand.
Otherwise, no downscaling is done in a timestep.
Compile in pedantic mode to catch extra errors

Newer modules which doesn't have any legacy code should do this so we
don't introduce anything suspicious without noticing.
"Use" variables so we don't get errors

There arguments are passed as part of an interface. We don't make use
of them here, but others might, so we need to keep them.
Refactor unsafe double* into RunLenViews
Merge pull request #29 from rolk/029_timestep

Connect timestep event handling in wrapper with underlaying simulator