Add screenshot capability

If the test module sets the global variable 'screenshotBase' to an
existing directory, the workflow can save screenshots to this directory
Modify file selection to work everywhere

Chrome and Firefox on Windows don't accept filenames in the same way.
Something to do with the colon in the drive name looking like a URI
scheme. Anyway, Fran discovered a magic incantation which appears to
work for Firefox and Chrome on Windows and Linux.
Refactor tests using WorkflowTest

Tests that run a workflow are refactored into a WorkflowTest class,
containing the common preparation and monitoring code.

Also provides better handling of inputs, interactions, and outputs