improve hash attributes failure message by caching values and enumerating in output
changelog for #668
[skip ci]
make have_attributes diffable
add diffable #668 to changelog
[skip ci]