Wrong error message generated by have_received matcher when method was called 2 or more times than expected

The wrong error message is generated when a `have_received` matcher is used with counts the exceed the expected due to use prematurely raising an exception. If we catch the exception everything works as is.

I've pushed up an alternative implementation based on your suggestion though.