Various improvements / fixes - rewrite approaching

  - sendmail: use '-t' to parse recipients from mail, instead of only
    sending to the first one
  - do not use shell=True!
  - capture stderr and use it together with returncode to raise an
    exception

Ref: https://github.com/perenecabuto/django-sendmail-backend/issues/1
Rewrite

  - based on BaseEmailBackend (which does not append separator/newline)
  - return number of sent mails (as per documentation)
  - handle `fail_silently`

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)