Added support for bulk operations to CopyMessage and DeleteMessage methods.

I found there was quite a bit of overhead when processing many messages one at a time, so I added overloads to be able to process many messages at once.

I implemented this via a `MessageSet` class that de-dupes and collapses a list of integers into ranges using IMAP's message set format, e.g., {1,2,3,4,5,7} gets converted into "1:5,7".

Note: I made no changes to `IIMapClient`.