[Validator] Fixed groups argument misplace for validateValue method from validator class
handle Optional and Required constraints from XML or YAML sources correctly
[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