mail: Add signals to interact with mail processing

Signals added:
  * mail.received
    Called after the mail is received into the system and before it is
    processed by the mail system. This signal is useful to do header
    injection. Raw message/rfc822 included in 'raw' key in the info

  * mail.decoded
    Called after the initial decoding of the message. The header and bodies
    are broken out, however, Unicode decoded may not have been performed
    yet. This signal is useful to affect the interpretation of the message,
    such as TNEF processing, etc.

  * mail.processed
    Called after all internal processing is completed. All Unicode
    processing is complete, bounce detection and other mechanisms have
    completed. This signal is useful to do things like attachment scanning
    or content filtering.
mail: Add useful error log on failed mail processing
logging: Add signal for log handling
thread: Add searchable view to ThreadBody

This will be useful for plugins which might need to scan the message body
regardless of its encoding. This will also be required for full-text indexes
which will not need to index HTML tags, for instance.
mail: No auto responses for auto-reply mails

This requires extra processing in the mail backend, perhaps through a
plugin, which would detect and flag a message as an auto-reply. Auto-replies
are added to the ticket thread, but have the automated responses disabled.
Merge pull request #952 from greezybacon/feature/mail-system-plugins

Add signals to enable mail filtering plugins

Reviewed-By: Peter Rotich <peter@osticket.com>