3.0 Event: dispatchEvent() wrapper

As discussed here: #4552 

I'm not sure about the test case... I'm open for any suggestions. What actually should be tested here?
I've just copied it from Event constructor :). So probably it should be updated there as well.
Same for typehinting $data?