fix(teardown): ensure _original_dir is always set

If setUpClass throws an exception, it's possible that testOutcome
will be invoked before startTest; indeed, in this case startTest
will not be invoked at all! Ensure that _original_dir is well-
defined in this and other hook ordering cases.