[HttpFoundation] Give control over how session start on demand.

This allows control over how the session start on demand works

0: no start on demand when bags are accessed
1: start session if bags are accessed
2: no start on demand when bags are accessed but still return bag contents
[FrameworkBundle] Add configuration to allow control over session start on demand.

1. Gives user control over session start on demand mode.
2. Re-introduce flag to allow session listener to manually start session.
[FrameworkBundle] Use more sophisticated validation and configuration.
[HttpFoundation][FrameworkBundle] Keep save auto_start behaviour as in 2.2 and make component values consistent with FrameworkBundle's configuration options.
Coding standards

As requested by @fabpot
Fix tests
[Form] Implemented support for buttons
[Form] Made submit buttons able to convey validation groups
[Form] Changed isset() to array_key_exists() to be consistent with ParameterBag
[Form] Fixed concatenation operator CS (see 7c47e34928c39e4797edc841423237a16588395e)
[Form] The option "validation_groups" can now be set to false to disable validation. This is identical to setting it to an empty array.
[Form] Fixed invalid use of FormException
[Form] Fixed incorrect doc comment
[Form] Simplified Twig code
[Form] Removed deprecated code scheduled for removal in 2.3
[Form] Added leading backslashes to @exceptionMessage doc blocks
[Form] Added upgrade information about setting "validation_groups" => false
fix overwriting of request's locale if attribute _locale is missing
merged branch uwej711/fix_locale_is_overridden_2_1 (PR #7686)

This PR was merged into the 2.1 branch.

Discussion
----------

[HttpKernel] fix overwriting of request's locale if attribute _locale is missing

In addition to https://github.com/symfony/symfony/pull/7516 same change for the 2.1 branch, see comments on https://github.com/lunetics/LocaleBundle/pull/59

Commits
-------

da156d3 fix overwriting of request's locale if attribute _locale is missing
Merge branch '2.1' into 2.2

* 2.1:
  fix overwriting of request's locale if attribute _locale is missing