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.
There is the problem that many people actually do use runserver in production despite all our warnings, so the current thinking among the core team is that we do have to treat runserver problems as security issues.