Allow output matcher to capture output of a child process

The output matcher doesn't capture the output of spawned child processes even if they share standard streams with the parent process. I noticed the issue when the following test wouldn't pass:

```ruby
expect {                                                                                                                                                                                          
  Process.waitpid(spawn("echo foo"))                                                                                                                                                              
}.to output("foo").to_stdout
```

This solution uses a `Tempfile` instead of a `StringIO` so it can be inherited by child processes.

I haven't looked too deeply into it, but it may also be the start of a solution to https://github.com/rspec/rspec-expectations/issues/642 since ostensibly tempfile name generation is thread-safe.

Also note that this requires changes to `StdErrSplitter` in rspec-support, which I will PR in a minute.
Right, I get the scoping reasons that became necessary.  One alternative would be to wrap the method def in a module and pass that as an arg to the shared group:

``` ruby
include_examples "output_to_stream", :stderr, :to_stderr, Module.new {
  def print_to_stream(msg)
    $stderr.print(msg)
  end
}
```

Then in the shared group you can both `include` and `extend` the module so that the method is available in both scopes where it is needed.

That said, while I like that slightly better I don't care much and am happy to merge this PR w/o that change.