[HttpFoundation] Optimize ServerBag::getHeaders()

isset() vs in_array makes it take half the time (1ms/req here)
substr() does not have to scan the whole string so it's a wee bit faster
[HttpFoundation] Avoid a few unnecessary str_replace() calls
[HttpKernel] Avoid updating the context if the request did not change

Due to the BC $this->setRequest() call in the onKernelRequest method, the
request is set twice every time in Symfony, and RequestContext::fromRequest
takes 1ms to run here so if we can skip one call it is a win.
[DependencyInjection] Add a method map to avoid computing method names from service names
[Security] fixed wrong merge (refs #4776)
made some optimization when parsing YAML files
[Form] Added radio button for empty value to expanded single-choice fields
merged branch fabpot/require-previous-session (PR #7938)

This PR was merged into the master branch.

Discussion
----------

[Security] fixed wrong merge (refs #4776)

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

This fixes a bad conflict resolution when #4776 was merged.

Commits
-------

1856df3 [Security] fixed wrong merge (refs #4776)
fixed DocBlock
merged branch bschussek/issue3154 (PR #7939)

This PR was merged into the master branch.

Discussion
----------

[Form] Added radio button for empty value to expanded single-choice fields

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #3154
| License       | MIT
| Doc PR        | symfony/symfony-docs#2605

Commits
-------

7933971 [Form] Added radio button for empty value to expanded single-choice fields
fixed CS
merged branch Aitboudad/patch-3 (PR #7941)

This PR was merged into the master branch.

Discussion
----------

fixed DocBlock

Commits
-------

aecc495 fixed DocBlock
merged branch Seldaek/optim (PR #7931)

This PR was merged into the master branch.

Discussion
----------

A few optimizations

Commits
-------

ea633f5 [HttpKernel] Avoid updating the context if the request did not change
997d549 [HttpFoundation] Avoid a few unnecessary str_replace() calls
f5e7f24 [HttpFoundation] Optimize ServerBag::getHeaders()
merged branch Seldaek/methodmap (PR #7933)

This PR was merged into the master branch.

Discussion
----------

[DependencyInjection] Add a method map to avoid computing method names from service names

/cc @schmittjoh @stof

The diff is a bit messy because of indenting, but all this adds really is an `if(isset($this->methodMap[$id])) { $method = $this->methodMap[$id]; }` that bypasses the method_exists + strtr calls. It's not a huge improvements but saves some cycles on something that's typically called a few hundred times per request.

Commits
-------

f1c2ab7 [DependencyInjection] Add a method map to avoid computing method names from service names
[Crawler] Add proper validation of node argument of method add
merged branch entering/crawler-add-node-argument (PR #7924)

This PR was squashed before being merged into the master branch (closes #7924).

Discussion
----------

[Crawler] Add proper validation of node argument of method add

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Crawler method add, fix PHPdoc and

Commits
-------

41805c0 [Crawler] Add proper validation of node argument of method add
fixed CS
ProxyManager Bridge
merged branch Ocramius/feature/proxy-manager-bridge (PR #7890)

This PR was squashed before being merged into the master branch (closes #7890).

Discussion
----------

ProxyManager Bridge

As of @beberlei's suggestion, I re-implemented #7527 as a new bridge to avoid possible hidden dependencies.

Everything is like #7527 except that the new namespace (and possibly package/subtree split) `Symfony\Bridge\ProxyManager` is introduced

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6140 (supersedes) #5012 #6102 (maybe) #7527 (supersedes)
| License       | MIT (attached code) - BSD-3-Clause (transitive dependency)
| Doc PR        | Please pester me to death so I do it

This PR introduces lazy services along the lines of zendframework/zf2#4146

It introduces an **OPTIONAL** dependency to [ProxyManager](https://github.com/Ocramius/ProxyManager) and transitively to [`"zendframework/zend-code": "2.*"`](https://github.com/zendframework/zf2/tree/master/library/Zend/Code).

## Lazy services: why? A comprehensive example

For those who don't know what this is about, here's an example.

Assuming you have a service class like following:

```php
class MySuperSlowClass
{
    public function __construct()
    {
        // inject large object graph or do heavy computation
        sleep(10);
    }

    public function doFoo()
    {
        echo 'Foo!';
    }
}
```

The DIC will hang for 10 seconds when calling:

```php
$container->get('my_super_slow_class');
```

With this PR, this can be avoided, and the following call will return a proxy immediately.

```php
$container->getDefinitions('my_super_slow_class')->setLazy(true);
$service = $container->get('my_super_slow_class');
```

The 10 seconds wait time will be delayed until the object is actually used:

```php
$service->doFoo(); // wait 10 seconds, then 'Foo!'
```

A more extensive description of the functionality can be found [here](https://github.com/Ocramius/ProxyManager/blob/master/docs/lazy-loading-value-holder.md).

## When do we need it?

Lazy services can be used to optimize the dependency graph in cases like:

 * Webservice endpoints
 * Db connections
 * Objects that cause I/O in general
 * Large dependency graphs that are not always used

This could also help in reducing excessive service location usage as I've explained [here](http://ocramius.github.com/blog/zf2-and-symfony-service-proxies-with-doctrine-proxies/).

## Implementation quirks of this PR

There's a couple of quirks in the implementation:

 * `Symfony\Component\DependencyInjection\CompilerBuilder#createService` is now public because of the limitations of PHP 5.3
 * `Symfony\Component\DependencyInjection\Dumper\PhpDumper` now with extra mess!
 * The proxies are dumped at the end of compiled containers, therefore the container class is not PSR compliant anymore

Commits
-------

78e3710 ProxyManager Bridge
Reverted a part of f5e7f2481916d32d5e51b4f01a2deced78b81549