Test battery housekeeping

@arjclark - with reference to your email, please review.

With this change, complete housekeeping is done for successful tests on the suite host.  

Bash has associative arrays - who knew?

Currently two of the tests use remote hosts; these are not cleaned up ... there are several ways that could be achieved, e.g. have reference test suites use shutdown handlers to clean up their own remote hosts; or have the test-battery command do it after interrogating the suite definitions to find remote hosts. But, we don't currently allow multiple shutdown handlers (and test suites already use one); and there's currently no easy external way to determine remote hosts *and* remote run directory locations. So I'll punt that for the moment.