Fix specs for non shared behavior

These specs should not be shared, since they don't apply for example to
IO#syswrite.

Also adds a case for binary writing for IO.write.
Don't try to transcode if external encoding is binary encoding