unix: fix SIGCHLD race in process.c
unix: fix SIGCHLD race in process.c

Start the SIGCHLD signal watcher before calling fork(). There was a very subtle
race where a child process could quit (and generate a SIGCHILD) before the
signal handler was installed.

To reproduce, call uv_spawn() repeatedly with the below x86_64 program:

    // compile with `gcc -O2 -nostdlib`
    void _start(void)
    {
      // syscall(SYS_exit, 0)
      __asm__ __volatile__ (
        "xorq %rdi, %rdi;"
        "xorq %rax, %rax;"
        "mov $0x3c, %al;"
        "syscall;"
      );
      for (;;);
    }

urbit/archaeology2,urbit/archaeology2,urbit/archaeology2,urbit/archaeology2,urbit/archaeology2,unknownbrackets/maxcso,unknownbrackets/maxcso,urbit/archaeology2,urbit/archaeology2,urbit/archaeology2,unknownbrackets/maxcso,urbit/archaeology2,unknownbrackets/maxcso,unknownbrackets/maxcso,unknownbrackets/maxcso,unknownbrackets/maxcso