Make SoupConnection warn if disposed "incorrectly"
Connections should always be disconnected and message-less by the time
they are disposed. Likewise, their SoupSockets should be disconnected
and not in the middle of an async connect when they're freed (though
we can't make the sockets warn unconditionally, since other SoupSocket
users external to libsoup may still be doing it "wrong", since that has
historically been a supported part of the API)
Fix some problems revealed by these warnings. Also, remove some weak
refs and replace others by hard refs as needed. Remove unnecessary
SoupSessionAsyncTunnelData type.