ruby 1.8.7 patches
rework threaded tests using ListenWrapper

- fix tests silently failing without minitest/parallel
- accurately simulate Interrupt handling by running watch in thread
- isolate the tests somewhat by using thread local storage