EZP-20438: Make it possible to use a custom controller to handle a content/location

This PR is a follow-up of #280 .

* 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] 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