Prevent invoked expectations from being modified after they are invoked.

I paired with @mrgilman on this. I'm happy to carry the pull request over the line based on feedback.
This spec no longer demonstrates what the description says it is about. Before, it passed an implementation block to 'with', then passed a different one to 'at_least' to override. Now it only passes the latter and no override happens.