EZP-20438: Provide an easy way to enhance available data in a view template

This PR covers 3 use cases:

* Adds a [generic listener to `ezpublish.pre_content_view` event](https://confluence.ez.no/display/EZP/Parameters+injection+in+content+views), bound to the template selection rules.
* Lets you configure a custom controller with the configured matcher rules.
* Lets you override the built-in view controller.

See [spec document](https://github.com/ezsystems/ezpublish-kernel/blob/2585736073b2445cc40abd4e7dd6c093fdc113bb/doc/specifications/view/enhanced_content_views.md) for details.

## TODOS
* [x] Write a specification doc
* [x] Implement parameters injection (static and from container)
* [x] Implement siteaccess dependent parameters injection
* [x] Implement parameter provider services injection
* [x] Make it possible to globally override the built-in ViewController
* [x] Make it possible to pick up your own custom controller to handle content view (either from UrlAliasRouter or sub-requests using `ez_content:viewLocation`)
* [x] Fix existing unit tests
* [x] Add unit tests