Improve have_attributes matcher failure message.

Improve hash attributes failure message by caching values and enumerating in output.

Fixes #667
Personally, I'd inline this logic into the call site above.  I don't see this helper method adding anything except overhead.

Not a merge blocker, though.