auto reconnect, better disconnected detection (ugly!)
fix package name in calling ChannelListeners
treat parts like quits
Only registere the internal handler ONCE (in case of reconnect)