irc_output_test: Use mock connected channel better

Check for connected using channel, as well as disconnected. Remove unnecessary
disconnected mock connection struct attribute.
irc_output: test reconnecting success
irc_output: test being disconnected and unable to reconnect
irc_output: test being kicked from a channel
irc_output: test joining and parting between messages.
Handle more irc error replies.

Disable joining some channels after receiving specific errors.
Add RunCallbacks to IrcConnection interface.

Replace callback calls in mock with RunCallbacks call.
Remove loops when dealing with 1 irc channel.

Also remove mock irc tracking of joined channels since joins are async, and
verifying joined status should be handled by the outputs callbacks.
irc_output: test when an irc channel is unjoinable.
irc_output: reduce unnecessary some duplication in tests.
Clean up more specifies
Begin full irc channel tests
irc tests: Re-organize specs
irc_output: test unable to join full channel
irc_output: test successful rejoin attempts