backend: Initial support for session proxy

This patch adds support for using the current session's HTTP and HTTPS
proxy from gio's ProxyResolver. For each type of proxy, it only uses the
first url because reqwest only supports that. We reuse the client
connection pool until it detects any proxy change.
4 jobs for <span class="ref-name">session-proxy</span> in 21 minutes and 10 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Check
passed #262162
check

00:00:26

 
  Test
passed #262163
flatpak

00:18:25

 
  Review
passed #262164
review

00:01:33

failed #262165
allowed to fail manual
stop_review

00:00:45

 
Name Stage Failure
failed
stop_review Review
Using Docker executor with image fedora:29 ...
Pulling docker image fedora:29 ...
Using docker image sha256:d09302f77cfcc3e867829d80ff47f9e7738ffef69730d54ec44341a9fb1d359b for fedora:29 ...
Running on runner-d836cf30-project-6592-concurrent-0 via gcc150.bak.milne.osuosl.org...
Cloning repository...
Cloning into '/builds/sfanxiang/fractal'...
Checking out f9fb4455 as session-proxy...
fatal: reference is not a tree: f9fb4455c728b2fab1f4590791655df4116b5196
ERROR: Job failed: exit code 1