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
    """
    Initialize the mail service.

    :param from_address: The sender address.
    :type from_address: str
    :param keymanager: A KeyManager for retrieving recipient's keys.
    :type keymanager: leap.common.keymanager.KeyManager
    :param cert: The client certificate for SSL authentication.
    :type cert: str
    :param key: The client private key for SSL authentication.
    :type key: str
    :param host: The hostname of the remote SMTP server.
    :type host: str
    :param port: The port of the remote SMTP server.
    :type port: int
    """