Special case Error instances so that errors with different messages and/or extra properties are considered different.

I decided not to let otherwise identical Error instances with different stacks be considered different. I thought that would mostly be annoying when you just want to assert that something is an error with a given message property:

    expect(obj, 'to equal', new Error('foo'));