disable setsid per-service with a ./no-setsid file.

Before this change, each service always ran in a separate process group via setsid(2). For users that need the classic daemontools behavior instead, the existence of a file ./no-setsid in a service directory will disable this.
when using setsid, signal the entire process group.

Prior to this change, only the process leader of a service would be signalled by svc(8). For multiprocess services, this meant that sending SIGINT or SIGTERM would typically orphan processes. Better behavior: always signal the entire process group when a service is using setsid.
ensure clean service shutdown and clean ^C, ^Z behavior.

When supervise(8) itself receives certain signals, they should be propagated to the service.

When supervise(8) receives SIGTERM or SIGINT, propagate this to the supervised process by behaving as if `svc -dx` had been called. SIGTERM occurs during system shutdown. SIGINT can occur when svscan(8) is running in terminal foreground and gets ^C. In both cases, not propagating the signal to a setsid service will result in orphans that continue to run.

When supervise(8) receives SIGTSTOP, for example because svscan(8) is running in terminal foreground and gets ^Z, behave as if `svc -p` had been called. Similarly, when supervise(8) receives SIGCONT, behave as if `svc -c` had been called. This ensures that setsid services stop and resume when running in foreground.
disable process group signaling with `svc -=`.

To explicitly send signals only to the process group leader of a service, even if the service uses setsid, use `svc -=`.

To explicitly send signals to the entire process group, even if the service uses ./no-setsid, use `svc -+`.

Otherwise, process group signalling is used iff the service is setsid.
Merge pull request #16 from acg/multiprocess-services

make managing multiprocess services easier and safer