Bulletproofed fireTestFinished: can call only once
Enabled the test for fireTestFinished being called from a different thread
Refactored
Bulletproofed fireFailure: call innermost notifier
Bulletproofed fireFailure: cannot call after test is finished
Bulletproofed fireFailure & fireTestFinished: check the TestNotifier instance instead of TestId
Improved TestNotifier's error messages
Refactored: renamed CurrentRun->Run and DefaultSuiteNotifier->ThreadBoundSuiteNotifier
Refactored: avoid having to update a boolean field of whether a test is finished