Dispatch error should be preventable

Please see the tests.

It is currently impossible for a listener of `Zend\Mvc\MvcEvent::EVENT_DISPATCH_ERROR` to do following:

```php
$event->setError(''); // resetting app state (not an error)
$event->setRouteMatch(...); // setting a route match (allows for redirecting to a controller in case of routing failure)
$event->stopPropagation();
```

This PR fixes that