Consider Error instances different when their 'message' properties differ

This adopts the tests from #39 and makes sure that `expect(new Error('foo'), 'to equal', new Error('bar'));` fails without introducing the ability to for a custom type to delegate equality testing to the next type.