Have TestLoggerFactoryResetRule reset the state prior to tests.

The commit message explains it:

> Previously, `TestLoggerFactoryResetRule` would only reset the thread-local state after each test. As a result the very first test in a class managed by this rule could encounter state left over from logging activity that commenced outside the rule's scope (typically as part of a test in some other class not managed by `TestLoggerFactoryResetRule`).
> 
> This fix ensures that `TestLoggerFactoryResetRule` establishes the invariant that the thread-local state before any test is empty. Strictly speaking we could remove the post-execution cleanup, but code outside this rule's scope might rely on the existing behavior. Deleting said statement might break existing tests and that's probably not worth the trouble.

Let me know what you think :)