Added event dispatcher and URI_CONTEXT_BUILT event

This PR adds an EventDispatcher to the AutoRouteManager and dispatches an event after each URI context is built.

This event enables the user to modify the "auto route" after it has been updated / created. Notably it would enable setting fields such as `host` on the Route document.

The `UriContext` object has access to the generated URI, the subject object (for which the route is being generated) and the route itself.

````php
class SomeEventHandler
{
    public function handleUriContextBuilt(UriContextEvent $event)
    {
        $uriContext = $event->getUriContext();

        $autoRoute = $uriContext->getAutoRoute();
        $uri = $uriContext->getUri();
        $content = $uriContext->getSubjectObject();

        if (null === $autoRoute->getId()) {
            // its a new auto route
        } else {
            // its an old one
        }

        $autoRoute->setHost('mydomain.dom');
    }
}

can you explain when exactly this event is raised? on a new autoroute, on a moving autoroute, when an autoroute has to be removed because the content is deleted?

do we need different events for the different situations?