Rework spec.

Before, it mutated the message expectation after it
had already been used. This was just done as a matter
of convenience in the spec, and wasn’t the core point
of it. (Honestly, I didn’t think about mutation-after-use
at the time).

Now, it still verifies that it can be overridden in
all the same ways, but doesn’t use the expectation
before overriding it. This preserves the important
behavior while opening the door for #778.
Merge pull request #836 from rspec/rework-mutation-spec

Rework spec.
Make the collection matchers composable with other matchers.

Fixes #801
Changelog entry for #819
Merge pull request #819 from rspec/samphippen/compoasable_argument_matchers

Improve composability of collection argument matchers
Prevent invoked expectations from being modified after they are invoked.