Ignore broken pipes writing to stdout, stderr.

MRI ignores broken pipes in scenarios like the following:

  ruby -e '10.times { puts; sleep 0.05 }' | ruby -e 'gets; exit'

This is neither documented nor tested anywhere I can find. Nor is it possible
to port the exact functionality from the labyrinthine MRI IO C code.