EZP-23012: As a developer, I want to be able to extend the application view services

JIRA: https://jira.ez.no/browse/EZP-23012

# Description

The idea is to make possible to extend view services (and later others types of components) with the [YUI Plugin](http://yuilibrary.com/yui/docs/plugin/) system. Basically, the developer will be able to register plugins for some components in a *global* registry and those plugins will be dynamically added. Together with the configuration system proposed in #95, this will allow to cleanly extend almost anything in the Platform UI App. This will also be useful for us to decouple components into smaller pieces.

## View service plugins

The view service plugin can enhance the view service in the following ways:

* by adding a custom `parallelLoad` method in the plugin, it's possible to asynchronously load some data in parallel with the loading done by the view service (and others plugins)
* by adding a custom `afterLoad` method in the plugin, it's possible to asynchronously load some data after the loading done by the view service (other the others plugin). For instance, the developer wants to fetch something by using what is loaded before.
* the view associated with the service get the result of the merge between the view service and the plugin `getViewParameters` implementations

In addition, the view service plugins are [normal YUI plugins](http://yuilibrary.com/yui/docs/plugin/#pluginlisteners) so from a plugin you can subscribe to any event the service get (that's what is done in this PR in the content tree and object relation load plugins) and you can also enhance any method implemented by the service by adding your own behavior before or after the original method execution.

# Tasks

* [x] implement a plugin registry
* [x] define a base class for the view service plugins and change base view service to take plugins into account
* [x] reorganize existing view service code in plugins
  * [x] object relation related code in location view view service
  * [x] content tree related code in discovery bar view service
* [x] ~~if time, add the same concepts to others types of components (apps, views, ...)~~ (will be implemented in [EZP-23147](https://jira.ez.no/browse/EZP-23147))

# Tests

unit tests + manual tests
What is the reason you're checking whether the ``plugins[identifier]`` is existing? As far as I can see in the Firebug, there I always assigned an empty array, so it could be just this: ``plugins[identifier] = [];``