Refactor IMAP Connection and Message
This moves all IMAP-specific logic into its own Connection::IMAP
and Connection::Message::IMAP
classes.
This is in preparation for supporting other mail backends, such as Microsoft Graph API.
Edited by Stan Hu