Fixed #20844 -- adds formatted log entry in the body of the email ...

... as per specified LOGGING handler 'formatter' setting.

Sample email subject:

```[Some Site][Development] ERROR: Refactor this to use QuerySet level solution as per ticket - https://code.djangoproject.com/ticket/20625 - Offer.objects.filter(...).active() != Offer.objects.active.filter(...)```

Sample email message:

```
ERROR django.db.models.manager 2013-08-01 11:58:03,897 manager 6516 -1244890304 /srv/www/django/development.yupi.ca/src/github-danielsokolowski-django-ticket_20625-tailored/django/db/models/manager.py@139: Refactor this to use QuerySet level solution as per ticket - https://code.djangoproject.com/ticket/20625 - Offer.objects.filter(...).active() != Offer.objects.active.filter(...)

No stack trace available

Request repr() unavailable.
```

Sample LOGGING config:

```
LOGGING = {
	'version': 1,
	'disable_existing_loggers': True,
	'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
	'formatters': {
		'verbose': {
			'()': 'djangocolors_formatter.DjangoColorsFormatter', # colored output
			'format': '%(levelname)s %(name)s %(asctime)s %(module)s %(process)d %(thread)d %(pathname)s@%(lineno)s: %(message)s'
		},
		'simple': {
			'()': 'djangocolors_formatter.DjangoColorsFormatter', # colored output
			'format': '%(levelname)s %(name)s %(filename)s@%(lineno)s: %(message)s'
		},
	},
	 # omitting the handler 'level' setting so that all messages are passed and we do level filtering in 'loggers'
	'handlers': {
		'null': {
			'class':'django.utils.log.NullHandler',
		},
		'console':{
			'class':'logging.StreamHandler',
			'formatter': 'simple',
		},
		'mail_admins': {
			'filters': ['require_debug_false'],
			'class': 'django.utils.log.AdminEmailHandler',
			'formatter': 'verbose'
		}
	},
	'loggers': {
		'': { 
			'handlers': ['mail_admins', 'console'],
			'level': 'WARNING',
		},
	}
}
```