Fix many IrcClientSet bugs

It should now be more robust.
This is a breaking change; IrcClientSet is now a class
instead of a struct. It will probably changed name soon
as well.