Made the stop method abstract.

Some of the implementations are left as TODOs. They are mostly about how to cancel the in-progress body execution. Likely something that should be exposed from the StepContext or perhaps a return value of invokeBodyLater() --- some kind of handle that returns the currently executing StepExecution.

Or perhaps we make it the contract that the stop() method is not called while the body is executing?
Merge REMERGE_HEAD