fails:IO.open raises an error if passed binary/text mode two ways
fails:IO.open coerces :external_encoding option with #to_str
fails(2.2 change):IO.open does not propagate a StandardError raised by #close
fails(2.2 change):IO.open does not set last error when a StandardError raised by #close