Small progress

1. Use process-relative names 'in queue' and 'out queue', easier to
understand.
2. Use a latch to know when to close the channel (and thereby exit)

3. Use readableQueue in the client implementation as well, since it's
so close to the same code (the difference being handling 'open', which
can be ignored in the `--recv` case).