Improve wire protocol support

Doesn't fix that remaining scenario yet though....
Basic feature for passing state between steps
Update scenario for new core behaviour

Because the new core compiles all steps before it executes them, the compile
pass will now send the step_matches message down the wire before the
begin_scenario message. So we need a wire server that can handle that.

This scenario now seems to fail just because of some defect in the
progress formatter that's not printing the exception. If we can fix that
we're done.