better testing for ==, eql?, and hash on Message