Rewrite / merge with sendmail backend from django-snippets

I have merged https://djangosnippets.org/snippets/1864/, with the following notable changes:

  - write the message as_bytes() - this is what the SMTP backend does
    and is _probably_ the right thing to do
  - use `sendmail -t` (parse recipients from mails; as with my previous commit)
  - removed thread locking, which should not be necessary, according to
    https://djangosnippets.org/snippets/1864/#c4310 - likely copied from
    the SMTP backend
  - raise an Exception in case of error (as with my previous commit)

See the commits for more information.