[Form] Added option type checks in some FormTypes

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        | none

Follow-up to #11696. Some of the built-in form types allowed passing invalid options, which lead to errors that were not so easy to understand. This PR adds needed checks where applicable.

Allowed types in `TimeType`'s `empty_value` option were taken from the documentation.
hmm, the choice type itself indeed does not support iterators. but child types (for instance the EntityType) are supporting it, while your change prevents it