testsuite: An overhaul of the driver
This tries to put the testsuite driver into a slightly more maintainable condition:
- Add type annotations where easily done
- Use pathlib.Path instead of str paths
- Make it pass the mypy typechecker
- Add lint step to CI to enforce typechecker
It also fixes a few issues in the JUnit output:
- Make it pass mypy
- Fix a typo in test name field
- Report more stderr output
- Report stdout output
The JUnit issues were, in fact, all I set out to fix when I went down this road. However, as you can see, things quickly snowballed.