Run cross-platform commands for headless GUI testing
This is similar to https://github.com/GabrielBB/xvfb-action (at least in purpose), but with a few differences:
- runs on node16, silencing GitHub deprecation warnings
- doesn't use xvfb-run, instead runs xvfb once for all commands
- by default installs and starts a minimal window manager (see pytest-qt troubleshooting for info on why)
- allows installing additional linux dependencies and customizing setup/teardown commands