Add log-on-failure mode

Add a new mode, log-on-failure.  It should:
* Continue appending to the saved log
* Print to the original streams for failed tests

This is designed to improve developer convenience, keeping passing tests quiet and making failing tests noisy.

Additionally, you might want these commits separately:
* 55d397b - fix naming typo in one of the unit tests
* 47132cd - restores original import ordering after picking 55d397b (editor was too aggressive)

Additionally, you might want this commit separately:
* 3787119 - Move (not "more") to using `TestWatcher` rather that `ExternalResource` for flexibility