Test the new semantics for setting and deleting a function's __dict__ attribute.  Deleting it, or setting it to a non-dictionary result in a TypeError.  Note that getting it the first time magically initializes it to an empty dict so that func.__dict__ will always appear to be a dictionary (never None).
Test the new semantics for setting and deleting a function's __dict__
attribute.  Deleting it, or setting it to a non-dictionary result in a
TypeError.  Note that getting it the first time magically initializes
it to an empty dict so that func.__dict__ will always appear to be a
dictionary (never None).

Closes SF bug #446645.

sk-/python2.7-type-annotator,sk-/python2.7-type-annotator,sk-/python2.7-type-annotator