Overhaul Ruby RequestHandler thread interruption again.

So the first attempt utilizing RobustInterruption wasn't a good idea. Ruby's
mutex is not atomic w.r.t. Thread#raise so if we #raise at the wrong place we
can corrupt the thread's mutex state.

The second attempt, connecting to our own server sockets to wake up the
threads, didn't work well either. They don't always succeed for some reason,
so we can't wake up a thread if someone deleted the Unix domain socket file.
They also won't work if we ever decide to use Unicorn-style shared sockets.

This third attempt uses an entirely different approach. The HelperAgent
guarantees that, at the time the owner pipe is closed, all clients have
finished processing and no new clients will be directed to the process.
So now we just wait 100 msec after all threads have been idle, and then
abort them with Thread#raise. No mutexes, no socket vodoo.