Better TERM_CHILD default handling for Heroku

- If TERM_CHILD is set, then default to graceful-wait behaviour,
  which seems to be what Heroku expects.
- Allow override via --term-graceful or --term-graceful-wait, which
  also both respect TERM_CHILD and pass TERM to workers when that's set.
- Log the signal we are sending to children, for extra peace of mind.
- Log a warning if it looks like we are running on Heroku and TERM_CHILD
  is not set.