proto: Solve double-END race when rejecting IncomingStreams
From a comment in a test in circuit.rs:
// TODO (#1191): this sometimes triggers an interleaving where the rejected IncomingStream is
// dropped before the reactor has a chance to handle the END message sent by reject(),
// which causes it to actually send 2 END cells for the same stream.
I think we should try to fix this if we can, since it's a protocol violation.
Edited by Nick Mathewson