Fix sending messages to protected irc channels

Also fixes a problem where the plugin wasnt exiting when it failed to have
any joinable channels due to a non kicked error.

Fixes #1030
In this location, we use `Conn.Join` because this function only happens on connection, and we're not actually Joining, but asynchronously sending a JOIN message. `output.Join` is a wrapper which checks if specific channels have been marked as unjoinable. SInce we're connecting we're either connecting the first time, or we're connecting after a DC. We'll get an error back if we cannot join a channel, and the error callbacks can handle the error (ie, checking if we have no joinable channels left, ect).