Fix bash completion when using command options

By quoting the ‘line’ variable we are making it a single word, but ‘getopts’ wants each option as its own word.

Previously bash completion would output an error for a line like: ‘ninja -vn targ‸’.

In addition to removing the quotes (to enable word expansion) I also used it as a regular variable, as that is what it is (not an array).
Expand the -C argument via ‘eval’ in bash completion

Previously completion would not work for ‘ninja -C $HOME/Source/foo targ‸’.

We still do not support using tilde in the directory argument.
Merge pull request #737 from sorbits/bash-completion-fixes

Bash completion fixes
Rename parser_perftest to depfile_parser_perftest.
Merge pull request #739 from nico/ren

Rename parser_perftest to depfile_parser_perftest.
Add a .clang-format file.

This isn't meant to be authoritative. It's good enough to let the
"indent current line using clang-format" hotkey do the right thing often
enough to be useful.
Merge pull request #740 from nico/formatfile

Add a .clang-format file.
Improve ninja responsiveness to SIGINT.

This problem is subtle. When executing many short (in time) sub-processes,
ninja does not respond well to SIGINT. This due to the short time frame where
ninja is not blocking SIGINT. Before this patch the time frame was the time
frame of the pselect(1)/ppoll(1) system call. This time frame get very short
when sub-processes does not live for long (the worst case is with "sleep 0"
command). With this patch it is no longer an issue.
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.

With this patch you can use control-z but signal is sent to each sub-process
instead of each sub-process's group.

make(1) has the same behavior.
Allow SIGTERM for interruption.

Default signal sent by other program like kill(1) to gently terminates
another one is SIGTERM.
Handle EINTR on waitpid().
Handle EINTR when reading from child's pipe.