Added FlowInterruptedException to set a result and cause of interruption in a controlled manner.
Using it from both StageStep and InputStep.
Removing FlowExecution.abort since it was just sugar for finish(ABORTED) and only had one (non-test) caller anyway.