+str: Implement efficient stream op DSL

Explanation in the doc comment for Interpreter
The basic issue here is that there might be no downstream "demand" (pull) due to the exactly-one event property and the fact that a finish() might separate a ball from the downstream side of the finished op. See my other comment for a more detailed explanation. We can express this API differently though, we can experiment here; the important thing is to recover missed events when necessary and keep exactly-one event all the time around.