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.
Use setsid in process::child to isolate processes

Instead of only putting children processes in their own process group with
setpgid, put them in their own session.  We will use the child class to
execute test programs, and we want test programs to own the session they
run in.  It is easier to do this change here than attempting to do it
elsewhere.
NOT READY: Add executor module and plain module
REWORD: Add atf executor module
FIX: Modify run_tests to use executor