Factored more graceful disconnect logic to async.listeners.
async.Stomp.disconnect() can now be called repeatedly without raising
StompAlreadyRunningError.