Implement upstream servers.

This allows to fetch archive files from an upstream server, using the
new /archive/ API. We only talk to the upstream server if we don't have
a file locally.