Start dealing with SIGINT and EPIPE

For simplex, anyway.

In the SIGINT case, it has to stop reading, which leaves a partial
"file" in the queue, which is maybe not ideal. It's not clear what
should be done though, e.g., does the next reader discard data until
it sees an `open`?

Open question: should --recv read all the data to EOF, even if a
down-pipe process stops reading from the pipe?