Execute tests after scanning, from toplevel directory

As a preparation to running the tests in parallel, change things
around on two points:

* The test scanning is a separate phase, and only gathers the list of
  things to do.

* When we run the tests, we do not use chdir() (outside system()
  anyway) any more.

This is needed because all threads will share the same current
directory, so they cannot use chdir().
Implement threaded regression tests

We just need to make sure we share the main test queue and all the
output data.
Use forks instead of threads

The threads support causes errors like these:

  Attempt to free nonexistent shared string '3', Perl interpreter: 0x23cc740 at tests/vg_regtest line 526.

Occasionally followed by an interpreter segfault (!).

I have been advised on #perl that it is "hardly a secret" threads is
broken, and that I should instead 'use forks' as a drop-in
replacement.  So until such time as threads is fixed, let's do that.
Merge branch 'parallel-regtest'
Mass-edit massif tests to use unique output names

This just mass-substitutes massif.out -> massif.TESTNAME.out in all
vgtest and exp files, like so:

  for f in *.vgtest; do
    b=${f%.vgtest}
    perl -i -pe "s{massif\.out}{massif.$b.out}g" $f $b.*.exp*
  done
Merge branch 'parallel-regtest'
Much prettier output format in threaded mode
Make thread support depend on whether 'forks' is available
Merge branch 'parallel-regtest'