close fd if fd is greater than -1

This handles cases in which stdin has been closed prior to opening an
input device.

"The open() function shall return a file descriptor for the named file
that is the lowest file descriptor not currently open for that process."
                                                          -- Posix
be more lenient about OSErrors in __del__()
update changelog