irc: Send numeric error when failing to join a channel
This fixes issues like getting a blank window with a channel that the
irc client thinks the user is in but bitlbee doesn't.
The error is sent either by returning NULL in the chat_join prpl
function, or by calling imcb_chat_free() before the user is added to the
channel.
This wasn't possible before since purple returned NULL in its chat_join,
which resulted in other bugs too. Since that's fixed, I can finally
apply this, which has been in my stash for a very long while.