Rewrite Stepford with a new design

Step _classes_ now declare their dependencies & productions as attributes, and
the Planner (formerly Scheduler) resolves dependencies for each step by
looking at the productions from other classes.

This eliminates the need to manually instantiate step classes and pass
attributes to each step. It does, however, lead to the creation of many more
step classes, since steps are no longer parameterizable in the same
way. However, I think the overall amount of code needed to use Stepford will
be less, and the code you do have to write is more declarative, so that's
good.