Improve how we pass data between steps
_Originally created by Tails on [#5847 (Redmine)](https://public-redmine-archive.tails.boum.org/code/issues/5847)_
See e.g. the changes commit 61928d8 brings to `torified_gnupg.feature`.
There the class variable `gnupg_recv_key_res` is used between steps.
Imagine if the step that assigns it (i.e. `I fetch the ... OpenPGP
key...`) is done before the background snapshot is saved, and some step
that uses `gnupg_recv_key_res` (e.g. `GnuPG uses the ... keyserver...`)
is done after the background snapshot is restored. It will work for the
first scenario, but in the following scenarios `gnupg_recv_key_res` will
be empty, because class variables are cleared between scenarios.
Perhaps steps like these should only be allowed either when no
background snapshot is used, or after the background snapshot has been
restored? That could be achieved by putting the following at their
beginnings:
```
raise if @skip_steps_while_restoring_background
```
Or we don’t allow using class variables between steps them at all, and
instead we have to use global variables (i.e. `$gnupg_recv_key_res`),
which are *not* cleared *ever*.
Feature Branch: test/5847-fix-global-vs-class-variables-issue
Parent Task: tails/tails#10237
### Related issues
- [x] **Blocked by** tails/tails#6094
issue