Release 3.4.1

This release primarily fixes an important bug related to cache handling
for the find() function inside of pmb/helpers/pmaports.py. This bug
could cause strange an unexpected behaviour in some circumstances.

Fixes:
* CONTRIBUTING.md, README.md: Use descriptive links
* Revert "CI: ruff: use 0.11.0 (Cannot use star annotation)"
* CI: fix coverage regex
* pmb.arch: Add support for s390x
* pmb.config.init: Use heapq for sorting timings
* pmb.helpers.apk: Avoid concatenation
* pmb.helpers.pmaports: Add must_exist to cache signature for find()
* pmb.qemu.run: Use NonBugError for invalid device selection error

Other:
* ci: add test coverage to the GitLab UI
* ci: only run integration tests when there are code changes
* ci: only run markdown lint if markdown files are changed
* pmb.qemu.run: use virgl on aarch64 hosts
* pmb.qemu.run: add support for EFI on aarch64
* pmb.qemu.run: command_qemu: refactor applying arch-specific options

Docs:
* docs/index: introduce local deploy example
* docs/index: update local deploy example with pmb.ci
* docs/mirrors: mention env variables example