[Form] Fixed FormValidator::findClickedButton() not to be called exponentially
[Form] Removed usage of the ChoiceList::getIndicesFor*() methods where they don't offer any performance benefit
[Form] Fixed ChoiceList::get*By*() methods to preserve order and array keys
[Form] Fixed expanded choice field to be marked invalid when unknown choices are submitted
[Form] Improved test coverage of ChoiceList classes
merged branch bschussek/issue8317 (PR #8978)

This PR was merged into the 2.3 branch.

Discussion
----------

[Form] Fixed FormValidator::findClickedButton() not to be called exponentially

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

Commits
-------

b65a515 [Form] Fixed FormValidator::findClickedButton() not to be called exponentially
Merge branch '2.3'

* 2.3:
  [HttpFoundation] fixed format duplication in Request
  [Form] Fixed FormValidator::findClickedButton() not to be called exponentially