Make the EzPublishKernel /app extensible

> Status: proof of concept

This PR implements an extensible `EzPublishKernel`.

### Example
The custom kernel and console referenced in the description below can be found on https://gist.github.com/bdunogier/8619032.

![ez extensible kernel](https://f.cloud.github.com/assets/235928/2002064/243c4ccc-85df-11e3-9068-bd68f99bc0a6.png)

### Benefits
it lets you create eZ Publish projects without modifying the native `ezpublish` folder, making it really easy to maintain eZ Publish 5 up-to-date. Any change to eZ Publish itself (new bundles, configuration...) will automatically be applied to all of your projects.

It also makes it very easy to host *multiple, independent projects* on the same eZ Publish 5 installation. Each project has its own configuration, cache, logs... without messing with environments.

### Principle
Custom apps use their own kernel dir, with a custom application kernel that extends `EzPublishExtensibleKernel`.
The app kernel takes care of loading bundles for the application itself; the bundles required by eZ Publish will be loaded by the parent kernel class.

This extensible kernel also defines a new kernel parameter, %ez_kernel.root_dir%, set to the ezpublish kernel folder (`ezpublish/`). This parameter is used by eZ Publish itself to reference external files. (see Issues below)

Configuration is handled as follows:

#### `config.yml`
Will be loaded twice:
- from `ezpublish/config/config_<env>.yml`
- from `app/config/config_<env>.yml` (if the file exists), overriding any value defined in the file from `ezpublish`

#### `ezpublish.yml`
Will be loaded:
- either from `app/config/ezpublish_<env>.yml` if it exists
- or from `ezpublish/config/ezpublish_<env>.yml` (if it doesn't exist, `ezpublish_setup.yml` is loaded as expected.

#### `routing.yml`
If a new location isn't redefined in the app's `config.yml` (`framework.router.resource`), `ezpublish/config/routing.yml` is loaded.
If a new location is defined, it is used _instead_ of the original one. *It is required that you **copy** the original routing.yml* file to the app so that the eZ Publish routes are loaded. Any way to automate that would be appreciated.

#### `parameters.yml`
Not sure, actually ! Would appreciate insights on this.

#### Custom kernel
> Example: https://gist.github.com/bdunogier/8619032#file-appkernel-php

- Extends `EzPublishExtensibleKernel`
- Loads bundles required by the app
- Calls `parent::registerBundles()`

#### Front controller
> Example: https://gist.github.com/bdunogier/8619032#file-index-php

A custom front controller is required. I stored mine in `app/vm.ezpublish5/web/index.php`. I used a copy of the original  index.php, with:
- an include of `ezpublish/autoload.php` (no autoload.php in the custom app)
- an include of `ezpublish/EzPublishExtensibleKernel.php` instead of `EzPublishKernel.php`;
- an extra include of my custom `app/vm.ezpublish5/AppKernel.php`
- a new instance of `AppKernel` instead of `EzPublishKernel`

#### console
> Example: https://gist.github.com/bdunogier/8619032#file-console

unfortunately, the console can't inherit from much. Fortunately, it's only 25 lines long.
My custom `app/vm.ezpublish5/console` undergone the same changes as the kernel:
- Updated path to included `ezpublish/autoload.php`;
- Included `ezpublish/EzPublishExtensibleKernel.php` instead of `EzPublishKernel.php`;
- Included `AppKernel.php`
- instanciated  `AppKernel.php`

### Issues

#### `%ezpublish_kernel.root_dir%`
YAML files in `ezpublish-kernel` sometimes reference static files (`.tr`, `.xsl`) using the `%kernel.root_dir%` kernel parameter as the base directory.
Since this project layout changes the kernel directory, those inclusions may break (depending on how deep your app folder is). The workaround is to use `%ez_kernel.root_dir%` in those files instead. This would require that the definition of this parameter is moved up from `EzPublishExtensibleKernel` to `EzPublishKernel`.
Code updated locally, needs a pull request.

#### composer scripts
Composer scripts use `ezpublish/console`. In this situation, this console won't be configured, and the scripts will fail.