[Form] Fix of "PATCH'ed forms are never valid"

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #8111
| License       | MIT
[Validator] Fixed groups argument misplace for validateValue method from validator class
[DependencyInjection] Fix Container::camelize to convert beginning and ending chars

To convert a service ID exactly like Container::get
merged branch GromNaN/dic-camelize (PR #8536)

This PR was merged into the 2.2 branch.

Discussion
----------

[DependencyInjection] Fix Container::camelize to convert beginning and ending . and _

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

I'm using strtr to make the conversion in order to ensure that the behavior is the same as `Container::get`.

From the test cases I've added, the following were not passing:

Commits
-------

485d53a [DependencyInjection] Fix Container::camelize to convert beginning and ending chars
Added missing files .gitignore
merged branch hason/gitignore (PR #8498)

This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes #8498).

Discussion
----------

Added missing .gitignore

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

Commits
-------

60bc41d Added missing files .gitignore
Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
merged branch patrickallaert/issue-8455 (PR #8456)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #8456).

Discussion
----------

[Process] Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary

Since `PHP_BINARY` is the very first approach considered, there is no way to use a workaround like setting the `PHP_PATH`.

Checking `PHP_PATH` could potentially be put before checking `PHP_BINARY`: that would avoid an extra function call (and system call), at the price of a small BC_BREAK, but I think it's better in this case to have a solution that doesn't force people to set the `PHP_PATH` environment variable.

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

Commits
-------

35a2fe4 [Process] Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
added missing comments to WebTestCase
merged branch Powerhamster/missing-comments (PR #8453)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #8453).

Discussion
----------

added missing comments to WebTestCase

Added comments that are required for autocompletion when extending WebTestCase.

Commits
-------

d056e6b added missing comments to WebTestCase
merged branch venu/groups_argument_fix (PR #8422)

This PR was merged into the 2.2 branch.

Discussion
----------

[Validator] Fixed groups argument misplace for validateValue method from validator class

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

Signature of validateValue method in ExecutionContext Class is this.
```
public function validateValue($value, $constraints, $subPath = '', $groups = null)
```

But this was called wrongly in Validator Class.

Commits
-------

d3eb9b7 [Validator] Fixed groups argument misplace for validateValue method from validator class
handle Optional and Required constraints from XML or YAML sources correctly
merged branch xabbuh/issue7575 (PR #7930)

This PR was submitted for the 2.1 branch but it was merged into the 2.2 branch instead (closes #7930).

Discussion
----------

handle Optional and Required constraints from XML or YAML sources correc...

...tly

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

Commits
-------

a93a23a handle Optional and Required constraints from XML or YAML sources correctly
merged branch biozshock/patch-form-fix (PR #8362)

This PR was merged into the 2.3 branch.

Discussion
----------

[Form] Fix of "PATCH'ed forms are never valid". Fixes #8111

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

Commits
-------

a2b1535 [Form] Fix of "PATCH'ed forms are never valid"
[Validator] fixed ConstraintViolation:: incorrect when nested
merged branch venu/ticket_8351#2.2 (PR #8421)

This PR was squashed before being merged into the 2.2 branch (closes #8421).

Discussion
----------

[Validator] fixed ConstraintViolation::$propertyPath incorrect when nested

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

In nested constraints, the property path will be overwritten in the context (as there would be a recursive call to CollectionValidotor when nested). Reason is, in ConstraintValidatorFactory object is loaded from memory if exists and context is initialized with the new context. So, other constraints after the nested constraints PropertyPath would be wrong.

So I think better create a new object for CollectionValidator always.

see this https://gist.github.com/alexkappa/5851274
It shows [name][email] even though the email is not under the name node.

Commits
-------

28e0709 [Validator] fixed ConstraintViolation:: incorrect when nested
Merge branch '2.2' into 2.3

* 2.2:
  [Validator] fixed ConstraintViolation:: incorrect when nested
  handle Optional and Required constraints from XML or YAML sources correctly
  added missing comments to WebTestCase
  Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
  [DependencyInjection] Fix Container::camelize to convert beginning and ending chars
  [Validator] Fixed groups argument misplace for validateValue method from validator class

Conflicts:
	src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php
	src/Symfony/Component/Validator/Tests/GraphWalkerTest.php
Merge branch '2.3'

* 2.3:
  [Validator] fixed ConstraintViolation:: incorrect when nested
  handle Optional and Required constraints from XML or YAML sources correctly
  added missing comments to WebTestCase
  Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
  Added missing files .gitignore
  [DependencyInjection] Fix Container::camelize to convert beginning and ending chars
  [Validator] Fixed groups argument misplace for validateValue method from validator class
  [Form] Fix of "PATCH'ed forms are never valid"