[Form] Add position support

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #5827 #4254 #3452
| License       | MIT
| Doc PR        | TODO

This PR migrates [egeloen/ivory-ordered-form](https://github.com/egeloen/ivory-ordered-form) into the core. It implements the feature the way @webmozart has explained in #5827. The UPGRADE file needs some love according to the BC promise but first, I would like some feedback :)
you should reset the properties at the end of the sorting (this will also help with garbage collection by removing the references inside this object)