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.
This spec only tests one aspect of the matcher's behavior when dealing with a sub process, but there are many other aspects that are not covered here but which we would like confidence that the matcher works for.  I think we can refactor the shared example group to support this.  We can change from `stream.print 'foo'` to `print_to_stream 'foo'`, where `print_to_stream` is a helper method defined at the point that `include_examples` is being called from.  Then we can include the examples 2 additional times (one for subprocess stdout, one for subprocess stderr), with `print_to_stream` defined using `Process.waitpid(spawn("echo ...."))` like you have here.

Thoughts?

One potential gotcha with this approach is that `include_examples` eval's the shared group block in the including group's scope, meaning you can't `include_examples` twice in the same context with differing helper method definitions -- instead you need to wrap them in separate contexts or use `it_behaves_like` (which generates a nested group and thus avoids the problem).