* Add context for Publish and AddEventListener
* Add test and listenersWithCtx
* Refactor listener logic
* Refactor publish logic for all combination of listeners and publish with and without ctx
If DispatchCtx is called and there's a handler registered using
AddHandler we now allow that and not return a handler not
found error. In addition we log a warning message helping
the developers know that AddHandlerCtx should be used
instead.
If Dispatch is called and there's a handler registered
using AddHandlerCtx we log a warning message helping
the developers know that DispatchCtx should be used instead.