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.
Thanks for updating these docs.  The main docs for this matcher are defined in `matchers.rb` at the `output` method definition:

https://github.com/rspec/rspec-expectations/blob/0778ffa49fe663ca10c808e0da88243add7a120c/lib/rspec/matchers.rb#L695-L719

Do you mind updating those docs as well?  It would also be good to mention (in both places, perhaps) the perf difference between the two approaches so that people understand why you should generally choose `to_stdout` over `to_stdout_from_any_process` unless you really need the sub process support.