Backport of Ruby 1.9's Open3 methods, for use in Ruby 1.8.