http: Remove use of SoupSessionSync/SoupSessionAsync

Since libsoup 2.42.0, SoupSessionSync/SoupSessionAsync are deprecated,
and replaced by direct use of SoupSession as described on
https://developer.gnome.org/libsoup/stable/libsoup-session-porting.html

This commit removes use of SoupSessionSync/SoupSessionAsync and adjusts
the code according to the advice in the doc above:
- we only need one SoupSession instance as sync/async calls are
  made depending on the SoupSession method we use, not depending
  on the instance type
- SoupSession already comes with a SoupProxyResolverDefault, we don't
  need to add it ourselves
- SoupSession already comes with a SoupContentDecoder, we don't
  need to add it ourselves
- SoupSession:use-thread-context is now unused and always set to TRUE,
  so we don't need to change it

To prevent any changes in behavior, we set ssl-strict to FALSE.

(Patch updated by Ross Lagerwall)
(Reapplying now that #732783 and #732925 have been fixed.)

https://bugzilla.gnome.org/show_bug.cgi?id=708306
https://bugzilla.gnome.org/show_bug.cgi?id=732090
http: Use a global SoupSession rather than per-backend

Use a global SoupSession rather than a per-backend so that idle
connections are reused appropriately.  This prevents a process running
out of file descriptors due to connections stuck in a CLOSE_WAIT state.

It also has the side-effect of limiting the maximum number of concurrent
connections because libsoup's max-conns property is respected, fixing
bug 576460.

(Reapplying now that #732783 and #732925 have been fixed.)

https://bugzilla.gnome.org/show_bug.cgi?id=732090