A few improvements and tweaks to the spike:

* add exeception to the failed result
* rename Executable to Testable and add factory methods
* more clarity in the reporting interface:
  * call the Testable::Scenario / ExamplesTableRow a 'test'
  * pass a plain AST step in the before / after step event

Questions remain:
* it would be helpful (e.g. for progress bars) to be passed all the
  tests in the before_tests event, but this would break the functional /
  lazy style of the Compiler, which I rather like.
* do we need to expose the Testable::Scenario/ExamplesTableRow, or could
  we just emmit the AST Scenario/ExampleRow and result to the report, as
  we're doing with steps? If we did, how would reporting of scenario
  outlines work?

@tooky @os97673 comments appreciated!
Playing around with printing more stuff