Basic (experimental) IRC support

Hi all,

Here's the pull request with support for IRC. The implementation is far from finished, but it should be able to provide decent chat support.

Some features that might be available on a good day:
* Connect to IRC server using plain and secure connection,
* Add, join, leave channels,
* Some support for channel forwarding (depends on channel forwarded to being in the contact list),
* Sending and receiving messages in joined channel,
* Sending and receiving private messages (currently implemented as a chat room with only 2 members, and sending happens with /msg user message),
* Support for channel member dynamics, such as: joins, parts, quits, kicks, role changes,
* Nick changes,
* Support for local user role changes,
* Support topic changes.

I have enabled 'debug'-level logging for the irc package. This also shows the output from the IRC library. During this stage, I believe it is good to keep an eye on the irc library's output too, so we can better pinpoint where/how problems might occur. (This should only be noticable if you actually use the IRC support.)

I have cleaned up the code a bit - as per request from Ingo. Some of the larger changes, such as a correct implementation of private messages, are still to come.

Danny
Stylecop would flag this as a "magic constant". Can you promote them to constants or at least make a comment behind the colon? (even if one can get the meaning from the case-body, it just gets more readable)