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
Not sure why this is always null? Seems like there should be an ID returned, even if it is auto-generated at class instantiation, or if there ever is only one instance during the app lifetime, just return a non-null constant. At the very least, if you must return null, please state so in the javadoc and explain why.