Moving encrypt, sign and send logic from gateway (SMTP) to an OutgoingMail class

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
this will fail if userid is unicode and cannot be encoded to ascii.
encode('utf-8') maybe? @ivanalejandro0 ?