Allow to stop ninja and its sub-processes at once.

Before this patch each sub-processes had its own group. This was great
because we could terminate each sub-processes group independently. Thus, author
of commands started by ninja did not have to worry about terminating their
own sub-processes. They were part of the same group as their command and ninja
was terminating the whole group.

However, with this approach the ninja process and its direct sub-processes
are not in the same group. This is a problem when you want to stop (= sending
SIGSTOP or hitting control-z) or continue a ninja job. In this case only the
ninja process is stopped and its direct sub-processes keep running until they
block on their IO because ninja is no longer reading them. If they do not
write, then they are not stopped at all.

This patch combines both. It keeps ninja and its direct sub-processes in the
same group thus we can control them all at once. On interruption, ninja sends
a signal to the whole group including itself and possibly its ancestors
and its sibling if they are in the same group. This is the main difference
with the previous approach. For ninja it is not an issue to receive this extra
signal because it still have its handler installed. It may be an issue for
ninja's ancestors/sibling when they are in ninja's process group.
Fortunately most of the time it is not the case because ninja is spawned
from an *interactive* shell which move it to its own group.

The incompatibility introduced by this patch only involved programs that spawn
ninja and want to do something when ninja is interrupted. These program now
have to move ninja in its own group.
Catch SIGTERM for interruption.

Default signal sent by other program to gently terminates another one
is SIGTERM. So ninja should handle it.