Implement listenToOnce via listenTo and on

Avoids unnecessarily calling `once` (since our wrapping here unbinds the callback once done anyway.)
via `_callback` and the cleanup from `off` (called from `stopListening`), same as for `Events.once`