Blocks provided to `with` are used as implementation.

It is confusing to have different behaviour depending on whether the
block has arguments or not, and there are better ways to do this.

This behaviour matches that of other message expectations.
Merge pull request #426 from rspec/issue-377

Blocks provided to `with` are used as implementation.