Better parent/child process handling.

The improved logic is based on resque's current logic:

https://github.com/resque/resque/blob/master/lib/resque/worker.rb#L167-L199
https://github.com/resque/resque/blob/master/lib/resque/worker.rb#L473-L504

Improvements:

- Gracefully detect and handle the child process already having quit.
- No `rescue nil` to silence problems.
- Uses `TERM` followed by `KILL`.
- Logs the signals the child is sent.
- No shelling out to figure out if the child is up or not (which can be fidgety on different OSs).

Note: I haven't written specs for this, because testing inter-process stuff can be quite difficult.  Given that resque is so widely used, I trust this logic a lot w/o adding tests.  I tested it with the `rake qless:work` task to actually try it for real.

Fixes #93.