Pass original message to custom failure message

When you set the custom failure message of a matcher to a Proc, the
original/default failure message is now passed to the Proc as
block argument.

The impetus for this was wanting to add more detail to a failed test's output
without completely ditching the nicely formatted default failure message.