Moving encrypt, sign and send logic from gateway (SMTP) to a MailService

Creates a MailService that has the logic for encrypting, signing and sending messages. Factors that logic out of EncryptedMessage so it can be used by other clients
There's some ongoing discussion about how to handle copyright issues. Just noting so in the future we remember to update this info in files' headers.