Shared Imagick instances for all transformations

This PR includes a ton of modifications to the internals of Imbo. Some notable changes:

* All image transformations now share an Imagick instance, and does not do `$imagick->readImageBlob($model->getBlob())` and then store the blob back into the model after each transformation. This should speed up multiple transformations quite a bit.
* Imbo now has something called event listener initializers, which can be used to inject dependencies into event listeners that is not instantiated in the configuration.
* The image transformations have been moved from the `imageTransformations` key in the configuration to `eventListeners` since they are now technically event listeners
* Image transformation presets now use the `transformationPresets` configuration key.
* Added more Behat scenarios
* Added more tests
* Updated and improved end-user docs
* Updated dependencies