file-watcher: add --shutdown and --log options
file-watcher: automatically quit

If $GIT_DIR/index.watcher is gone, exit. We could watch this path too,
but we'll waste precious resources (at least with inotify). And with
inotify, it seems to miss the case when $GIT_DIR is moved. Just check
if the socket path still exists every minute.

As the last resort, if we do not receive any commands in the last 6
hours, exit.
file-watcher: support inotify

"git diff" on webkit:

        no file watcher  1st run   subsequent runs
real        0m1.361s    0m1.445s      0m0.691s
user        0m0.889s    0m0.940s      0m0.649s
sys         0m0.469s    0m0.495s      0m0.040s
file-watcher: exit when cwd is gone

t7406-submodule-update somehow triggers this, the worktree is probably
moved or something.
pkt-line.c: increase buffer size to 8192

test "very long name in the index handled sanely" in t0000 stretches
it a bit with a pathname of 4096 char length. Because we pass paths to
the file watcher using pkt-line protocol, it dies with "protocol
error: impossibly long line". Increase the buffer size a bit.
t1301: shutdown file watcher in shared repo test

$GIT_DIR/index.watcher violates the rules with perm srwxrwxr-x
1