Support custom parameters when triggering events

This PR adds support for specifying custom parameters when triggering events:

```php
$manager->trigger('some.event', array('foo' => 'bar'));
```

In listeners subscribing to `some.event` the parameters can be retrieved like this:

```php
function ($event) {
    $param = $event['foo'];
    // or
    $param = $event->getArgument('foo');
}
```

Currently no events are triggered with custom parameters.

The PR also adds a requirement on [symfony/event-dispatcher](https://packagist.org/packages/symfony/event-dispatcher) for the event classes.