testbench: add a report script test & meta suite

This does an actual end-to-end test up 'til the completed Sink instance would
be passed to the reporting module. The idea is that as previous tests confirm
that Sink, Ctrl, ProcessModule, and the like work, this way testbench's parts
(the ones that generate the actual output) may be tested using bits that've
been already written and tested.
testbench: check handling of TODOs in 30_bench.pl
testbench: add tests for various kinds of plan

Besides the regular kind of plan (which so far goes untested entirely),
there's no_plan, skip_all, and one that's made at the end of the TAP stream.
test: meta: add fail tests

Forked and not-forked, fail_if(), assert(), and a segmentation fault. The
latter didn't seem to properly trigger, so that may need fixing later on.
testbench: remove pre-join syncs from test & fixture runners

These are now unnecessary, and prevented bailouts from returning correctly
besides.
testbench: fix segv to unforked root task

First, thread.c should pass the manager TID to forkserv in as_cfg(). That was
left out previously.

Second, forkserv should be more persistent when sending ThreadMgr::segv() to
the root task's manager thread. Pager loop dependency is caught by the timeout
being finite.
testbench: catch and report segfaults

Only ones caused by the main test thread, though. Any threads created by that
test before it blew up will be killed in process exit, or for non-forked
testcases, left dangling.
testbench: recognize segfaults in the report script
testbench: add progress report test count test

Also update ScriptModule to describe iterated tests properly. The whole
Mung::Module thing should get a bunch of tests by itself, too.
testbench: rename TestResult to SingleResult, replace with role

Doesn't seem to break anything.
testbench: correct test count report

Also, refine the 20_sink.pl test for positive ->has_problems as well. This
should be adapted for the iterated case when appropriate.