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've not been able to write a failing test for this, and I've actually convinced myself that this change isn't required.  It's something I'd not really considered when I applied the original patch.

Consider `cf1 = ChoiceField(choices)` and `cf2 = copy.deepcopy(cf1)`.

With this change, as part of the deep copying, we now effectively call `cf2.widget.choices = copy.deepcopy(cf1._choices)`.

However, this is redundant, since `cf2.widget` has already been set, via the `super` call on line 823, to be a deep copy of `cf1.widget`, and `cf1.widget.choices` will have been set to the right thing.

I'm not 100% convinced I've got this right though.  A second opinion would be very welcome!