Seeing your description (e.g. `output "foo" to stdout`) makes me think that maybe our matcher methods are sub-optimal.  What do you think about changing to this:

``` ruby
expect { }.to output("foo").to_stdout
expect { }.to output(/bar/).to_stderr
```

...rather than:

``` ruby
expect { }.to output_to_stdout("foo")
expect { }.to output_to_stderr(/bar/)
```

The former reads more closely to how we actually say it (and how the description reads), which is nice.  Also, it opens up new possibilities like this:

``` ruby
expect { }.to output("foo").to(some_alternate_stream)
```

(I don't think we necessarily should support that yet, and that's out of scope for this PR, but I'm just thinking it allows a bit more flexibility in the future to support things like that).

Anyhow, don't change to this new form just yet.  I'm really just thinking out loud here.

What do you think @lucapette?  @matthias-guenther?  @JonRowe? @xaviershay? @samphippen? @alindeman? @soulcutter?