After fork(), unconditionally stop the parent

Gives the user a chance to see the message about the child forking.

Previously, if the user chose "Run", and during the continuation it called
fork(), the child would sit waiting for instructions, but the parent would
not stop and show the user the message about forking.
Change exception message in the test

The hashref/arrayref exception message is different between Perl 5.8 and
5.10+.  This way there's one message to look for.

The mechanism for throwing exceptions for the compiler/runtime/die are all
the same, so there's no benefit in using a runtime exception over a regular
die
Make the test more explicitly wait until the test first test program finishes
Improve test reliability

Tests were randomly failing on the cpan tester's service from errors
like: Can't connect to localhost:53057 (Connection refused)

Now, the test parent creates the listen socket and arranges for it to stay
open across the exec() when starting the test program.