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

This will be needed to run the tests in parallel.
{call,cache}grind/tests: use 'rm -f' to clean up

The cleanup is racy: when we get around to running the tests in
parallel, several rm invocations may get the same arguments, causing
one or both to fail (the one that runs unlink() later).

Since no tests currently use the callgrind.out.* files, it is safe to
simply use rm -f to ignore the error.
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.

The conditional loading is a bit iffy, but I couldn't find a simpler
solution.  The problem is that 'use threads' acts more magical than
your average module.  So we need to go to some lengths, and stub
share() but not lock() (don't ask!), to avoid warnings both with and
without threads.
regtests: use forks instead of threads

Perl's globbing is currently non-reentrant, so it breaks the
interpreter when running under 'use threads', cf. [1].

The 'forks' module on CPAN works around this issue, since it runs the
perls in separate processes.  This doesn't scale quite so well, but is
a suitable drop-in replacement until such time as 'use threads'
becomes usable for us.

[1] https://rt.perl.org/rt3/Public/Bug/Display.html?id=117823