+str: IteratorInterpreter and ByteStringBatcher

IteratorInterpreter takes an Iterator and produces an Iterator, executing a sequence of DeterministicOps in between (DetachedOps and BoundaryOps are extremely dangerous here, so I disallowed them). There is also a quick'n'dirty ByteStringBatcher that tries to accumulate bytes until a limit has been met. 

The IteratorInterpreter does **not** check the input/output types of the Ops, it is the responsibility of the user classes to take care of it.
I don't know, but empty ByteString is a valid value, I guess.
At least I saw that akka-http is sending on Chunk of empty ByteString (e.g. when joining empty list returned from the Transformer. 
// cc: @jrudolph