+str: Implement efficient stream op DSL

Explanation in the doc comment for Interpreter
We don't know yet if this will be Akka internal API ore exposed. But user means here the guy who merely uses this mini framework, not hacks it (i.e. modifies internals). And by meaning user bug, I mean that the user is trying to do something that the documentation clearly disallows:

    * - DetachedOp implementations are boundaries between 1-bounded regions. This means that they need to enforce the
    *  "exactly one" property both on their upstream and downstream regions. As a consequence a DetachedOp can never
    *  answer an onPull with a ctxt.pull() or answer an onPush() with a ctxt.push() since such an action would "steal"
    *  the event from one region (resulting in zero signals) and would inject it to the other region (resulting in two
    *  signals). However DetachedOps have the ability to call ctxt.hold() as a response to onPush/onPull which temporarily
    *  takes the signal off and stops execution, at the same time putting the op in a "holding" state. If the op is in a
    *  holding state it contains one absorbed signal, therefore in this state the only possible command to call is
    *  ctxt.pushAndPull() which results in two events making the balance right again:
    *  1 hold + 1 external event = 2 external event
    *  This mechanism allows synchronization between the upstream and downstream regions which otherwise can progress
    *  independently.