Catch SIGTERM and terminate process groups

This is to fix problem that when supervisord terminated honcho, the child
processes kept running.

- Catch SIGTERM so we know when honcho is being terminated, and run terminate().
- In terminate(), signal the entire process group, not just the shell process
  that was used to start the process. Without this, the shell process exited but
  not its children.
# Branch: (no branch)