Start on reworking modules to be per-client instead of global. This lets us easily track state for each IrcClient in separate module instances, and also avoid some code repetition.