events: don't call once twice

Emitting an event within a `EventEmitter#once` callback of the same
event name will cause subsequent `EventEmitter#once` listeners of the
same name to be called multiple times.

```js
var emitter = new EventEmitter();

emitter.once('e', function () {
	emitter.emit('e');
	console.log(1);
});

emitter.once('e', function () {
	console.log(2);
});

emitter.emit('e');

// Output
// 2
// 1
// 2
```

This fixes the issue, only calling the listener method if it was not
already called.