[RFC] [EventDispatcher] toward cleaner events

I've quickly implemented my proposed fixes for both #6686 and #7582. We can't remove `getName()` and `getDispatcher()` from `Event` because those methods are marked `@api`, but we can deprecate them and remove them in 3.0.