Fixes #153.

Manually tested in SDI:
 - Mark all steps as unfinished
 - Dry run
 - Evolve
 22 steps finished OK.
@tseaver I agree with the argument ordering for these functions, I think it's because adding new arguments seem to make more sense when placed at the end.
I wonder if these type of callback APIs (similar to pyramid's `includeme` in nature) could be implemented as subscription adapters with the ZCA, that way it would be possible to document test these things with an interface, but I'm probably over thinking stuff.