Catch I/O Errors on ValueError exception

We are seeing some errors from threads that are not able to write to the stream because the connection is closing the file descriptors before the threads are joined (as seen in `protocol.ssh.NativePopen.close` ).

The connection object is already catching `IOError` but `ValueError` can also be raised for some IO Errors as well. 

I am making sure that we only catch that exact issue (`'I/O operation on closed file'`) otherwise the exception is re-raised (if for whatever reason a different ValueError is raised).