[Form] Added pluralization support for labels

Adds an options for all field types: `translation_count` an integer that is passed to `transchoice` to allow the pluralization of labels.

By default, it is `1` for all field types, except `FileType` and `ChoiceType` that default to `$multiple ? 2 : 1`.

The templates need to be changed to use `transchoice(translation_count, {"count": translation_count}, translation_domain)`, but the ones still using `trans({}, translation_domain)` will continue to work just fine. You will notice the `count` variable that is added, this is to allow translation strings like this:

    {0} No items{1} One item|]1,Inf] %count% items

As far as I know, everything is tested, but I am not that familiar with forms, perhaps someone should take a look. 

**Heads up**: Even though this PR does not introduce a BC break for the usage itself, it modifies the output of `StubTranslator::transchoice` so quite a few unrelated tests were broken and had to be adjusted.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #10108
| License       | MIT
| Doc PR        | symfony/symfony-docs#3810

- [x] write tests
- [x] submit changes to the documentation
So you suggest I put these in the templates ?
```php
<?php echo $view->escape(null === $translation_count ? $view['translator']->trans($label, array(), $translation_domain) : $view['translator']->transchoice($label, $translation_count, array(), $translation_domain)) ?>
```

```twig
{{ translation_count is null ? label|trans({}, translation_domain) : label|transchoice(translation_count, {}, translation_domain) }}
```