io.c: IO.copy_stream should write in binary mode.

This patch makes `IO.copy_stream' always copy in binary mode,
fixing the following scenario:

    require 'tempfile'
    require 'stringio'
    Encoding.default_internal = 'UTF-8'
    dst = Tempfile.new('out')
    dst.binmode
    # before this patch it raises:
    # in `write': "\xDE" from ASCII-8BIT to UTF-8
    # (Encoding::UndefinedConversionError)
    IO.copy_stream(StringIO.new("\xDE\xAD\xBE\xEF"), dst)

The other way to fix this would be trying to preserve the file mode
from Tempfile instead of always writing in binary mode. However,
this won't be the case for other objects responding to `to_path'.

I think as we're treating destination as streams, we would always
want writing in binary. So I guess this is ok.