disco: always free request structs
disco: always free request structs

The problem is this:

 1. disco request is made
 2. connection is disconnected
 3. SalutDisco is disposed
 4. SalutDisco dispose function g_cancellable_cancels each request
 5. the porter (actually sending the IQ) realises it's been cancelled
    and completes in an idle
 6. the disco callback deletes the request, dereferencing its disco
    pointer
 7. but it's already been disposed, so assertion galore.

There was previously an attempt to detect this but it was a bit
shonky. Now the disco pointer is cleared when SalutDisco is disposed,
then when the disco callback tries to delete the request it doesn't
try to access any SalutDisco structures. Bingo.

Signed-off-by: Jonny Lamb <3d1fb3642aaab2ff70e3392a5ab916bf99eed6a3@collabora.co.uk>

freedesktop-unofficial-mirror/telepathy__telepathy-salut,freedesktop-unofficial-mirror/telepathy__telepathy-salut,freedesktop-unofficial-mirror/telepathy__telepathy-salut,freedesktop-unofficial-mirror/telepathy__telepathy-salut