Support IO.copy_stream from a pipe IO instance.

IO.copy_stream fails when the IO instance is backed by a pipe, as seek is not
supported on the underlying pipe.

This change required some modification to the copy_stream_spec, I'm open to
suggestions if there's a more preferred way of structuring the spec.
Merge branch 'master' into IO.copy_stream-from-pipe-patch
Add pipe flag to IO.

Add a pipe flag to IO class so we can avoid calling #seek on the source IO in copy_stream.
IO#pipe? shouldn't ever need to fall back to calling Stat#pipe?
Add comment explaining the pipe_fixture helper method.
Change spec to use new_io helper rather than explicitly open files.
Merge remote-tracking branch 'warrenseen/IO.copy_stream-from-pipe-patch'