daemon: Send FDs over socket, reuse existing terminal.

Now sends remote file descriptors (stdin, etc.) across socket directly,
instead of pumping data through FIFOs.

Steals and reuses the existing terminal on stdin, if one exists, instead of
creating a new pty.

Warning: Reuse of existing terminal breaks job control in the caller shell.