Fix EBADF error by being more careful with fd's and IO objects
Fix EBADF error by being more careful with fd's and IO objects

Because IOs are always finalized, it's really important that an IO
object doesn't point to an fd that has been closed outside of the IO
object itself. Previously, the IO.setup to run setsockopt would point
the IO to an fd that we later might manually close, creating an EBADF
error race.

travis-repos/rubinius,Wirachmat/rubinius,lgierth/rubinius,ngpestelos/rubinius,jemc/rubinius,Wirachmat/rubinius,mlarraz/rubinius,dblock/rubinius,mlarraz/rubinius,Azizou/rubinius,digitalextremist/rubinius,benlovell/rubinius,jsyeo/rubinius,ruipserra/rubinius,benlovell/rubinius,ngpestelos/rubinius,benlovell/rubinius,sferik/rubinius,jemc/rubinius,jemc/rubinius,heftig/rubinius,pH14/rubinius,jemc/rubinius,lgierth/rubinius,Wirachmat/rubinius,jsyeo/rubinius,slawosz/rubinius,mlarraz/rubinius,heftig/rubinius,lgierth/rubinius,dblock/rubinius,mlarraz/rubinius,pH14/rubinius,jemc/rubinius,kachick/rubinius,kachick/rubinius,Azizou/rubinius,ruipserra/rubinius,sferik/rubinius,kachick/rubinius,digitalextremist/rubinius,digitalextremist/rubinius,digitalextremist/rubinius,slawosz/rubinius,sferik/rubinius,dblock/rubinius,ruipserra/rubinius,mlarraz/rubinius,kachick/rubinius,ruipserra/rubinius,dblock/rubinius,travis-repos/rubinius,slawosz/rubinius,Azizou/rubinius,dblock/rubinius,benlovell/rubinius,jsyeo/rubinius,lgierth/rubinius,ngpestelos/rubinius,sferik/rubinius,jemc/rubinius,slawosz/rubinius,benlovell/rubinius,travis-repos/rubinius,digitalextremist/rubinius,mlarraz/rubinius,ruipserra/rubinius,digitalextremist/rubinius,slawosz/rubinius,jsyeo/rubinius,lgierth/rubinius,ngpestelos/rubinius,kachick/rubinius,pH14/rubinius,travis-repos/rubinius,mlarraz/rubinius,Azizou/rubinius,benlovell/rubinius,dblock/rubinius,ngpestelos/rubinius,Wirachmat/rubinius,travis-repos/rubinius,pH14/rubinius,jsyeo/rubinius,jsyeo/rubinius,Wirachmat/rubinius,benlovell/rubinius,ruipserra/rubinius,heftig/rubinius,heftig/rubinius,slawosz/rubinius,kachick/rubinius,ngpestelos/rubinius,jsyeo/rubinius,pH14/rubinius,Azizou/rubinius,kachick/rubinius,kachick/rubinius,pH14/rubinius,digitalextremist/rubinius,sferik/rubinius,jemc/rubinius,lgierth/rubinius,heftig/rubinius,ruipserra/rubinius,travis-repos/rubinius,Azizou/rubinius,slawosz/rubinius,Wirachmat/rubinius,Azizou/rubinius,travis-repos/rubinius,ngpestelos/rubinius,pH14/rubinius,sferik/rubinius,heftig/rubinius,heftig/rubinius,lgierth/rubinius,sferik/rubinius,dblock/rubinius,Wirachmat/rubinius