This removes the following warnings.
```
activesupport/test/file_update_checker_shared_tests.rb:279: warning: assigned but unused variable - checker
```
Without the `wdm` gem, it appears that `listen` keeps an open handle to
each of these files, causing them not to be removed when the tempdir
tries to clean iteslf up, and then directory to fail to unlink. In
addition to fixing that particular failure, we now construct OS agnostic
paths, and capture exceptions if the directory fails to unlink so that
minitest will report it rather than crash
If the test run was interrupted in some way then it left temporary
directories inside of test causing the git worktree to be in a dirty
state. By overriding the run method we can use the block form of
Dir.mktmpdir to ensure that the directories are cleaned up no matter
which way the test run is exited.
This test needs to have a require for the Listen gem or else it returns
an error when run by itself or with a certain order in the Active
Support tests. We use `silence_warnings` because Listen has some
warnings about private methods. It's already silenced when it's required
in Active Support EventedFileUpdateChecker.
```
1) Error:
EventedFileUpdateCheckerTest#test_should_not_execute_the_block_if_no_paths_are_given:
NameError: uninitialized constant EventedFileUpdateCheckerTest::Listen
test/evented_file_update_checker_test.rb:21:in `teardown'
```
Before
./Users/Juan/dev/rails/activesupport/test/file_update_checker_shared_tests.rb:20: warning: instance variable @tmpdir not initialized
After
No warnings