Handle backpressure in pipe(size, dest)

Uses slice-stream (a Streams2 Transform) to properly manage buffering and
backpressure. Starts streaming data rather than waiting for pullstream's
internal buffer to contain enough data for read(size) to return a non-null
value.

Possible fix for #6