Wraps a tonic stream which exits once it encounters
an unrecoverable HTTP Error.
This wrapper does not try to differentiate between
transient HTTP Errors unrecoverable HTTP errors.
Once an error is encountered, the stream will yield the item
with the error, and then end the stream.
the stream is ended by returning Poll::Ready(None).
Attempts to pull items from both streams. S1 will always
be polled before S2. if S1 finishes first, the stream is considered over.
Attempts naive fairness by polling S2 before stream close if S1 finished and S2 still has Ready
items.