initial commit of DeferredEvent and DeferredEventFactory
initial commit of EventState
PromiseEventDispatcher respects Event#stopPropagation