Finally, we have something that can at least handle simple reconnects.
I've tested that it works to 'bzr branch qbzr' locally, and interrupt the server
with SIGHUP during the streaming-of-content phase. After which the next request
notices that the ssh process is no longer talking to us, and we reconnect to
make the next request.
That all works well. Though if I SIGHUP during get_parent_map_rpc, I've seen it
fail during the 'read_response' rather than the write phase.
But a decent first step.