Greatly improve recipient selection mechanism.

This resolves many errors, such as forwarding loops arising from mailing lists.
Patch GnuPG library to trust keys we've already got to avoid having to manually add them
Rudimentary support for not re-encrypting already encrypted messages
Fixed encrypted messages check

Moved it to the top of the method, to avoid unnecessary GnuPG class
invocation.
Revert part of commit 43b3392162f5e3ed2411197232af21d6a66fa8aa, so that we still send if there are no PGP recipients.
Fix format errors, also do deliver email for domain that should be encrypted even if the recipient doesn't have a key.
Fix bug with text files (or html files) attachments.
Fix bug causing messages to have extra characters or failing to encode properly.