Fix mode checking during IO.new/for_fd/open.
Fix chained redirect logic in popen setup. CI IO.popen 100%.
Unport IO#puts to get it green again.

When I ported puts, it switched from using Ruby.registerInspecting
to using Ruby.execRecursive. However I may not be using
execRecursive correctly, or there might be a bug...either way, the
RubySpec that checks recursive execution does not seem to fire
within the spec, where the IO class has been decorated with
special methods. My theory is that it is losing the recursive
exec state somewhere along the way, or not registering it
correctly.

In any case, since puts is just implemented in terms of dyncalls
to write, and the old implementation passes all puts specs, I'm
opting to just restore it.