Revert "Revert "combine: add _pipeline so errors will be handled""

Reverts Clever/understream#60. Also adds a guard in pipeline_of_streams to avoid recursing infinitely on a stream if that stream's _pipeline method returns the stream itself. This could occur if a stream from this version of Understream interacts with a stream from an old version of Understream (in which _pipeline returned the stream itself).
(the test in that commit fails without the `without`)