Improve have_attributes matcher failure message.

Improve hash attributes failure message by caching values and enumerating in output.

Fixes #667
ah, that makes sense. I wonder why we haven't hit upon that problem in other matchers?