make error argument optional

`ee.emit('error')` (without an emitted message) doesn't throw when domains aren't active. With them, it does, because `er` is null and starting from line 66 properties are added to it. 

domains shouldn't change the current behavior of EventEmitters.