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.