Allow emitter.once()

Currently, using `emitter.once()` with a callback will fail with `TypeError: undefined is not a function`. This makes it work.

The test is rather ugly, but it is demonstrative.

I'm not sure it makes a lot of sense to use `.once()` in a flow control scenario (unless ALL the listeners are only firing once), but I don't think the current failure mode is quite expected behavior.