Fix switching to TLS regression
Fix switching to TLS regression

The commit fcbbc248a8f885f9a9a6e7c47d7aae0c1ab3cd1b changed the way a
channel coroutine is exiting. In particular, it was going through the
coroutine main cleanup (finishing in main coroutine) while switching
to TLS is recycling the channel. That part of the code is a bit
difficult to grasp, but with this refactoring, I think it makes it
easier to understand the reconnection.

freedesktop-unofficial-mirror/spice__spice-gtk,elmarco/spice-gtk,Fantu/spice-gtk,guodong/spice-gtk,SPICE/spice-gtk,SPICE/spice-gtk,elmarco/spice-gtk,flexVDI/spice-gtk,SPICE/spice-gtk,mathslinux/spice-gtk,elmarco/spice-gtk,fgouget/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,fgouget/spice-gtk,SPICE/spice-gtk,guodong/spice-gtk,Fantu/spice-gtk,flexVDI/spice-gtk,Fantu/spice-gtk,guodong/spice-gtk,fgouget/spice-gtk,guodong/spice-gtk,mathslinux/spice-gtk,mathslinux/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,elmarco/spice-gtk,mathslinux/spice-gtk,Fantu/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk