Add some more Pipe tests.
Add some more Pipe tests.

One little thing I discovered: when calling fold() we move data from
the pipe to the new Sink. If there's a failure delivering this data
to the new sink that data is lost forever! We can't put it back in
the Pipe (it may have since grown in size, so putting it breaks our
invariants) and so we discard it.

The alternative would be to be pessimistic when moving data from
the pipe to the fold sink. I think this is worse because it would
make the code more complex.

square/okio,square/okio,square/okio