Add skipping the rest of a test case.

A mapping that raises Result::Skipped will skip that step and all
subsequent steps for a test case.

cc @tom025 - we think we should now be able to push all dry run logic back
into the front end.