xmpp: new way to async write

原先的做法，等待发送列队或者是等socket可以读。这做法太糟糕了。因为如果好几次都是等待发送列队成功，将导致大量的 nullbuffers 的 读操作进入 asio 的列队。不知道会不会出问题。 所以，还是回到老路上，发送列队还是开启独立的协程（stackless）执行发送。 但是，如果发送列队是空的，而且又是在 gloox 的 handle* 里导致的 send 被调用，那么还是执行一次让 gloox 看起来同步的发送，而不是投递给后台发送协程。