Use copy of attrs dict when building widget_attrs

Downstream code (e.g. for the taggit contrib autocomplete widget) will
add entries to the attrs dictionary during the rendering process.  This
resulted in a particular edge case:

1. Someone would view an edit form containing a TaggitWidget for an
   object that had already been tagged.
2. They would then navigate to an edit form containing a TaggitWidget
   for an object that had not yet been tagged.  The form would contain
   the tag list from the previous object.

This is due to the fact that the TextInput (in django.forms.widgets) was
adding a value attribute to the widget attrs (if the string was empty
which it would be if the object had not been tagged yet as in step 2,
then the value entry in the widget attrs was not updated and it would
keep the original value that was set during step 1 above).