Revamped IMAP IDLE code and bugfixes 

Hello,

I downloaded AE.Net.Mail the other day in search of  an IMAP lib that would allow my application to receive IMAP IDLE notifications. AE.Net.Mail is awesome but I think the code that deals with IMAP IDLE has some issues with thread synchronization and it will also not always cleanly shutdown.

I spent the last couple of days rewriting parts of it and after trying several different approaches, it is now working rather nicely. I also added a bit of documentation to a couple of methods as well. If anyone feels like reviewing my changes, please do and if you think they are alright, maybe we can get them into the repository.

I also re-worked the ParseMime method as it would get confused when parsing messages with empty content bodies.

Cheers,
 smiley22

ps. this also fixes a bug in GetMessages as described in #86