ServerConnection: kill async read when disconnecting
ServerConnection: kill async read when disconnecting

GSocket creates GSources to provide GInputStream and GOutputStream
objects. Interestingly, it doesn't set the GIOCondition on the GSource
to handle G_IO_NVAL (ie. your file descriptor is not valid anymore).

It means that if your trying to read asynchronously from the socket
while someone else closes the socket, you end with an GInputStream
that can never complete its asynchronous read operation because the
file descriptor isn't valid anymore but that isn't a condition to
dispatch the GSource and end the asynchronous read with an error.
Alternatively, this wakes up the gmainloop all the time => 100% cpu
consumption.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=64923
Reviewed-by: Simon McVittie <2b470b34502dbf3ba4bcc04ea7e64f4e0e104f33@collabora.co.uk>

freedesktop-unofficial-mirror/telepathy__telepathy-idle,freedesktop-unofficial-mirror/telepathy__telepathy-idle,freedesktop-unofficial-mirror/telepathy__telepathy-idle