Refactor isReap and AbstractStepFactory for proper deleting

GraphEntries are shared between GraphSteps and so the softOnReap
flag needed to be moved up into GraphStep, and with AbstractStepFactory,
all GraphSteps now have their softOnReap flag processed.

NB: DoAll-based deletes are still broken.