Impacted versions: 11.0

Steps to reproduce: fetchmal fails consistently while downloading messages

Current behavior: TypeError

Proposed patch for file addons/fetchmail/models/fetchmail.py:
```
--- fetchmail.py.orig	2017-10-30 20:53:32.590000000 +0000
+++ fetchmail.py	2017-10-30 20:53:53.890000000 +0000
@@ -204,7 +204,7 @@
                         pop_server.list()
                         for num in range(1, min(MAX_POP_MESSAGES, num_messages) + 1):
                             (header, messages, octets) = pop_server.retr(num)
-                            message = '\n'.join(messages)
+                            message = b'\n'.join(messages)
                             res_id = None
                             try:
                                 res_id = MailThread.with_context(**additionnal_context).message_process(server.object_id.model, message, save_original=server.original, strip_attachments=(not server.attach))
```



addons/fetchmail/models/fetchmail.py
for server in self:
            try:
                connection = server.connect()
                server.write({'state': 'done'})
            except Exception as err:
                _logger.info("Failed to connect to %s server %s.", server.type, server.name, exc_info=True)
                raise UserError(_("Connection test failed: %s") % tools.ustr(err))
            finally:
                try:
                    if connection:
                        if server.type == 'imap':
                            connection.close()
                        elif server.type == 'pop':
                            connection.quit()
                except Exception:
                    
                    pass
        return True
    @api.model
    def _fetch_mails(self):
        """ Method called by cron to fetch mails from servers """
        return self.search([('state', '=', 'done'), ('type', 'in', ['pop', 'imap'])]).fetch_mail()
    @api.multi
    def fetch_mail(self):