IrcCore: Use IOChannels for proper multiplexed I/O

This now requires end-users to have a GLib mainloop
running for things to work, but it does mean we're not
blocking for anything anymore.

This is the vital step required to enable a dummy Gtk
client to be built.