Streaming rpc

Here it is, the streaming RPC changelist!

I spent a long time cleaning it up into as few independent changelists as possible, and I hope it's readable for you.

because it'd be wrong!  because we're done with the 401 case, and can leave, but still have all the other cases to resolve.