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.
Rather than defining `print_proc` at the shared group inclusion site, and then wrapping it here with `print_to_stream`, I'd recommend directly defining a `print_to_stream` method at the shared group inclusion site.  For example:

``` ruby
include_examples "output_to_stream", :stdout, :to_stdout_from_any_process do
  def print_to_stream(msg)
    system("printf #{msg}")
  end  
end
```

That removes an unnecessary layer of indirection.

And for future reference, we tend to only use `define_method` when we need the method to have access to local args at the point of definition.  The `matcher` method needs this (since it needs access to the `matcher_method` block variable) but `print_to_stream` doesn't need access to any locals so we can just define it as a normal `def` as my example shows.