Instead of enumerating all existing runners -- doing i/o -- we cache the list at the `Index` level.
Add a test suite for the runner detection logic.
Move the checks for `meta.Schema` from `test_osbuild.py` into the new test suite, converting it to use pytest in the process.