Split up Irc into a data and a connection part.

Done this way to workaround borrowing mutable out from self. Now we can
connect processes a lot simpler from outside without relying on the irc
object to instantiate them.