Two fixes/workarounds for the hell that is our async connection management.
Running two xmlstream.connect() in parallel will result in horrible things, but fixing that is beyond my abilities, so I'm merely exposing the
is_connecting state to the userland, in the faint hope that it will help prevent the parallonnection.
Furthermore, when you /quit in a broken-disconnected state, the 'disconnected' event isn't fired because the connection_lost() callback isn't called due to a lack of connection. Adding the 'disconnected' handler into abort() additionally. It might fire twice, but who would perform two on-disconnect actions for one disconnect anyway?