better error message.
rewrite IO.for_fd.

IO.for_fd should call IO#initialize to initialize the created object
properly.  It cannot be implemented in Ruby.