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.