Fixes:
* markSeen property for imap.fetch works again
* Queued commands were being sent before waiting for the server's response when exiting idle mode
* Dispositions for multipart subtypes are now set properly
Other changes:
* Removed the last remnants of the ugly parsing of server responses
* Don't attempt to send IDLE to the server if we are about to log out
* Some of the message/rfc822 envelope header names were renamed to match what those names that are expected
If the IMAP server supports it, the IDLE extension will automatically be used in place of NOOP/polling when a mailbox is open. This means notifications of mailbox changes (e.g. when new mail arrives) will automatically be pushed to the client as they happen. Rejoice!
copy(), move(), fetch(), *Flags(), and *Keywords() methods now allow multiple message IDs.
move() now actually expunges the original message after copying, rather than merely setting the Deleted flag.
Removed command-specific items from the global state data and greatly simplified the populating of callback arguments.
Smarter literal data handling.
search() no longer goes kaput when no messages match the given criterion.
fetch() now always passes an Array to the callback.
Only pass the mailbox object to the callback for openBox() and renameBox().
Added UID criteria for search().
Fixed parsing of FETCH responses and added the message ID to the object generated by the FETCH parser.
Mailbox namespaces (if supported by the server) are now available as a property of ImapConnection and is automatically populated right after login.
The server's (top-level) mailbox hierarchy delimiter is also now available as a property of ImapConnection.
Reverted changes to allow reuse of an ImapConnection instance (for now).
Mailbox and message flags now no longer include the backslash prefix. Additionally, the preceding backslash for flags is not needed for functions that accept flags.
Added additional mailbox-specific methods: getBoxes, addBox, delBox, and renameBox.
Added additional message-specific methods: addKeywords, delKeywords, copy, and move.
Added keyword search option.
Refactored parsing functions a bit to make things a little more DRY.