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');
    }
}

yeah, just thought it would be more calisthenic :)