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.
In a project where a similar need arose, I chose to sort-of monkeypatch the function instead of copying. The code was, essentially, a general "utility":
```python
def _clone_func(f, new_globals):
    from types import FunctionType as Function
    return Function(f.func_code, new_globals, f.func_defaults, f.func_closure)
```
and its use in my child class, adapted to this case:
```python
class WSGIRequestHandler(simple_server.WSGIRequestHandler, object):
    #...
    handle = _clone_func(simple_server.WSGIRequestHandler.handle.im_func, globals())
```
This, essentially, re-interprets the parent class's method with the importing module's globals (of which, the only one relevant is `ServerHandler`)