SoupSessionAsync: fix the GMainContext tracking
SoupSessionAsync: fix the GMainContext tracking

Using (non-reffed) GMainContexts as hash keys can mess up when a
context gets freed and then a new one is created at the same location
(in which case the session might think it has an idle_run_queue
queued, but it doesn't really). Reorganize the way this works to avoid
that problem.

jwendell/libsoup,fanc999/libsoup,jwendell/libsoup,Distrotech/libsoup,jwendell/libsoup,jwendell/libsoup,Distrotech/libsoup,Distrotech/libsoup,fanc999/libsoup,Distrotech/libsoup,Distrotech/libsoup,fanc999/libsoup,fanc999/libsoup,jwendell/libsoup,fanc999/libsoup