feat: create CI cache if one not already found at each step (#2099)
### Description
To avoid the entire pipeline breaking if something happens to the cache
it depends on between steps, recreate it at each one if there is no
cache hit. To avoid a lot of duplicate code, both cache setups were
abstracted away into custom github actions.
**Additional Changes:**
* Downgrade runner instance for setup job
* Remove any python setup from docker file test