Fix stacktrace gathering in FreeBSD 11.0-CURRENT

Cope with ancient GDB versions that lack the -ex flag.  Use a temporary
GDB script instead and pass it to GDB with -x.
Add the process::wait_any() function

This new function is the equivalent of wait(2): awaits for any subprocess
to exit.  We will need this to implement the parallel execution of test
cases.
Add the process::exec() function

Generalize the private cxx_exec function in the process::child module and
make it a public process::exec top-level function.  We will be using this
in the implementation of parallel test program execution.  And, regardless,
it is nice to be able to test this function independently.
Add the engine::isolation module

This new module provides the isolate_child function which cleans up the
caller's process in preparation to run a test in a sane environment.
Yes, this module used to exist before the testers and it's time to bring
it back, although in a slightly different form.
Determine test case based on the helper's name

If the TEST_CASE environment variable is not provided to the
test_case_plain_helpers test program, attempt to guess the test case
name from the program's basename.  Do this so that we can execute
various instances of these helpers at the same time while each does
a different thing.
FIX THIS: setsid in child, not setpgid
NOT READY: Add executor module