events: add type checks to once

Also cleanup unnecessary use of "self" since it will always be called
using .apply() from emit.
events: use _ for internal properties

To keep with the use of _ in _events, and now _warn, .listener have now
been changed to ._listener.