Events instead of middleware

Implements Symfony Event Dispatcher for events instead of Evenement, and replaces the notion of Middlewares.