also execute preceding stages
to run all stages we can simply execute the last one
only execute a stage if it hasn't been run yet
give each stage a reference to its jail
give each step a reference to its stage
don't use a class variable to keep stages and steps by default

otherwise they will always share their children
don't let steps and stages 'decide' for themselves, whether they've has_run

IOW if we call a step/stage we expect it to be executed.

explicit is better than implicit :-)
having a step and a stage of the same name in the fixture was too confusing
be more explicit about what is being patched
minimal, in-memory implementation of marking a step/stage as having run
rename and group fixtures for consistency
factor out the mixin tests
implement the snapshot naming convention