Only create EventDispatcher instance if none has been defined already and register via extend() if so.

When another extension has already defined an event-dispatcher, we must not overwrite that one when registering our events.

Furthermore we are extending the current DI registration via `Pimple::extend()` to keep the chain intact if there is already something in the DI container.