Fixed #4444 - Tidying up 'broken pipe' errors in runserver logs

I have posted about this pull request on the django-developers mailing list at https://groups.google.com/forum/#!topic/django-developers/_oC_PAxxnQI . I did this because there is a very old existing wontfix ticket ([#4444](https://code.djangoproject.com/ticket/4444)) on this topic and so am hopefully following the contribution guidelines.

Ticket #4444 was opened in May 2007, and marked wontfix in September 2007 saying "The best we could is to have a more explicit error message." - hopefully this might count as such an error message :smile:

This pull request builds upon a previous patch posted to the django-developers list and outputs "Broken pipe" instead of a traceback for such an error. I get these frequently (e.g. hit refresh before your previous page has finished loading to sometimes get it).

I hope this can be considered for inclusion, as I think it tidies up a common issue with runserver output that will especially confuse people new to Django. Do let me know if I've gone about fixing it in the wrong way, or if I should do something differently.
Heh. So the fact I used `f.func_code` is a hint that I've been using Python for a while...
Here are the versions for modern (2+3) Python:
```python
def _clone_func(f, new_globals):
    from types import FunctionType as Function
    return Function(f.__code__, new_globals, f.__defaults__, f.__closure__)
```
and
```python
class WSGIRequestHandler(simple_server.WSGIRequestHandler, object):
    #...
    handle = _clone_func(six.get_unbound_function(simple_server.WSGIRequestHandler.handle), globals())
```