Overhaul to handle SIGTERM properly, with orderly shutdown of aux processes.

* Top-level SIGTERM trap is after starting processes, to avoid app from
  inheriting it, so the app can receive SIGTERM for orderly dyno shutdown.

* SIGTERM is ignored by the subshells and by the auxiliary processes.

* FIFO is removed after the first exit_process, so that following writes
  won't be blocked (they'll write to an actual tmp file).

* Translate subshell SIGHUP to preferred per-process shutdown signal
  (SIGINT) rather than sending SIGINT to the subshell, since it tends to be
  squashed by the shell.