Merge branch '2.4'

* 2.4:
  [Security] simplified some unit tests
  [Security] made code easier to understand, added some missing unit tests
  [DependencyInjection] fixed InlineServiceDefinitionsPass to not inline a service if it's part of the current definition (to avoid an infinite loop)
  [DomCrawler] Fixed creating form objects from form nodes.
  disabled php.ini changes when using HHVM in .travis.yml
  [Process] fixed HHVM support
  Add support for HHVM in the getting of the PHP executable
  [Security] fixed error 500 instead of 403 if previous exception is provided to AccessDeniedException
[FrameworkBundle] removed some more dependencies on the request service
feature #9590 WebTestCase: Assume relative KERNEL_DIR is relative to phpunit.xml[.dist]? (mpdude)

This PR was merged into the 2.5-dev branch.

Discussion
----------

WebTestCase: Assume relative KERNEL_DIR is relative to phpunit.xml[.dist]?

When using the `KERNEL_DIR` setting in phpunit.xml[.dist] files for the `WebTestCase`, a relative path seems to be interpreted relative to the cwd.

That makes no difference in the probably most common case of having the phpunit config in the project's top level directory and just running `phpunit`. It makes a difference however when running it from a lower level dir and referencing the config with `-c ../../phpunit.xml`.

A conservative change would be to interpret the `KERNEL_DIR` as relative to cwd and only try it as relative to the phpunit.xml[.dist] file if the first path does not exist.

A more consistent approach would be to always have it (in case of relative paths) being relative to the config file. That might break things for folks who intentionally start phpunit from different directories to use different kernels.

The docs seem not to say anything about how it is supposed to used, the example values provided suggest using an absolute path.

Opinions?

Commits
-------

05dc0e1 Consider KERNEL_DIR setting as relative to the PhpUnit XML file if it does not point to a directory (relative to the current cwd)
Merge branch '2.3' into 2.4

* 2.3:
  fix some cs
  use restore_error_handler instead of set_error_handler($previous)
  fix #9321 Crawler::addHtmlContent add gbk encoding support
  [Console] fixed column width when using the Table helper with some decoration in cells
  [Security] Fixed problem with losing ROLE_PREVIOUS_ADMIN role.
  Fix for cache-key conflict when having a \Traversable as choices
  [Security] removed obsolete comment

Conflicts:
	src/Symfony/Component/Console/Helper/TableHelper.php
	src/Symfony/Component/Security/Tests/Http/Firewall/ExceptionListenerTest.php
Merge branch '2.4'

* 2.4:
  fix some cs
  use restore_error_handler instead of set_error_handler($previous)
  fix #9321 Crawler::addHtmlContent add gbk encoding support
  [Console] fixed column width when using the Table helper with some decoration in cells
  [Security] Fixed problem with losing ROLE_PREVIOUS_ADMIN role.
  Fix for cache-key conflict when having a \Traversable as choices
  [Security] removed obsolete comment
[Validator] Added Doctrine cache
feature #9892 [Validator] Added Doctrine cache (florianv)

This PR was merged into the 2.5-dev branch.

Discussion
----------

[Validator] Added Doctrine cache

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/9887
| License       | MIT
| Doc PR        |

I propose to keep the `CacheInterface` and deprecate only the `ApcCache`.
It will leave the classes depending on a `CacheInterface` unchanged and will allow to adapt new cache providers in the future.

Commits
-------

3c4de45 [Validator] Added Doctrine cache
Change of scope

When overriding the Symfony RoleHierarchy it would be great to be able to get access to the buildRoleMap-method and map-variable for more advanced usage.
minor #9374 Change of scope (djoos)

This PR was submitted for the 2.3 branch but it was merged into the 2.5-dev branch instead (closes #9374).

Discussion
----------

Change of scope

Hi,

when overriding the Symfony RoleHierarchy it would be great to be able to get access to the buildRoleMap-method and map-variable for more advanced usage.

Don't hesitate to ask for further clarification if necessary - thanks in advance for merging the PR!

Kind regards,
David

Commits
-------

621aaf1 Change of scope
Expand tree
Improved form tree
Made sections collapsable
Added error badge
Fixed CS
Vertically centered the icons in the form tree
Improved JavaScript of the form debugger
Inverted toggler images and improved button coloring
Added "use strict" statements
Changed toggle color back to blue and made headlines in the form debugger clickable
Moved toggle icon behind the headlines in the form debugger