Add options for saving the output of tests

- The --copy-all option copies the outputs of all tests
- The --copy-failed option copies outputs only of failed tests
- The --copy-dir option specifies a directory in which to place the output
  files
- The --copy-ext option specifies a suffix to place after the copied output's
  filename.
- The filename of the copied output is chosen to mirror that for input and
  output.  Normally the input filename is chosen, but if there is no input
  file, or the input is stdin, the (benchmark) output file's name is chosen.
- Note that the copy function is run with the overwrite_if_exists option, as
  it is expected that this is more frequently the behavior expected.  However,
  it means one must be careful about copying to a directory that already has
  files in it.