Fixed #13181 -- Added support for callable choices to forms.ChoiceField

The code comes from https://code.djangoproject.com/attachment/ticket/13181/with_callable_choice_iterator.diff by vanschelven.

This addresses https://code.djangoproject.com/ticket/13181.
I don't think this change is needed. It seems to have been applied to ensure that `CallableChoiceIterator` is used on a copied `ChoiceField`, but if it were needed then the field we are copying would already have a `CallableChoiceIterator`, which we will be copying. So the `callable(value)` if statement in `_set_choices` will never happen.

In any case, it would be much nicer to write this as `result.choices = ...` rather than manually using the property.