Director emits events after visit, after draw and after update. And when the projection changes

Adds helper functions on EventDispatcher
Adds test in NewEventDispatcherTest