testbench: report fixture timeout

This changeset is useless as it stands, because the reporting script doesn't
react to broken fixtures. It should restart the test program.
testbench: abstract away test stream production

Now it's under three methods of a Mung::Module implementation, of which
there's exactly one: Mung::ProcessModule, which launches the qemu/kvm
testbench program. This paves the way for the next changeset, which rolls the
module-running loop into a package that may itself be tested separately.
mention another Perl dependency in README.md
testbench: move the test loop out of report.pl

And into Mung::Loop, for lack of better terminology.
testbench: close the tcase at Mung::Sink->done
testbench: add basic reporting test

And some associated helper classes. This already caught the immediately
preceding bug.
testbench: handle negative return codes in Sink
testbench: extend short streams to avoid confusing the TAP parser

By adding a skip-all plan, or just a bail-out message. The former case isn't
tested.
testbench: test assert failures

Works in the simple positive case.
testbench: add selftest for failure before plan

E.g. for kernel panics, kernel assert failures, and so forth.
testbench: always use fail_*() instead of assert()