hs-v3: Require reasonably live consensus

Some days before this commit, the network experienced a DDoS on the directory
authorities that prevented them to generate a consensus for more than 5 hours
straight.

That in turn entirely disabled onion service v3, client and service side, due
to the subsystem requiring a live consensus to function properly.

We know require a reasonably live consensus which means that the HSv3
subsystem will to its job for using the best consensus tor can find. If the
entire network is using an old consensus, than this should be alright.

If the service happens to use a live consensus while a client is not, it
should still work because the client will use the current SRV it sees which
might be the previous SRV for the service for which it still publish
descriptors for.

If the service is using an old one and somehow can't get a new one while
clients are on a new one, then reachability issues might arise. However, this
is a situation we already have at the moment since the service will simply not
work if it doesn't have a live consensus while a client has one.

Fixes #40237

Signed-off-by: David Goulet <dgoulet@torproject.org>
7 jobs for ticket40237_035_01 in 28 minutes and 6 seconds (queued for 1 minute and 11 seconds)
latest
Status Job ID Name Coverage
  Test
passed #8169
debian-disable-dirauth

00:08:29

passed #8166
debian-distcheck

00:06:14

passed #8167
debian-docs

00:06:45

failed #8165
debian-hardened

00:07:18

passed #8168
debian-integration

00:14:07

passed #8164
debian-minimal

00:07:47

passed #8170
debian-nss

00:04:59

 
Name Stage Failure
failed
debian-hardened Test
make[1]: Leaving directory '/builds/dgoulet/tor/build'
make: *** [Makefile:5798: all] Error 2
ERROR: command 'make -j4 -k all' has failed.
Uploading artifacts for failed job
Uploading artifacts...
artifacts/: found 1 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=8165 responseStatus=201 Created token=qLeTdWoR
Cleaning up file based variables
ERROR: Job failed: exit code 1