Originally based on a PR by @QuLogic, but extended a lot to get all tests to pass.
This allows for adding more advanced tests, for example tests that use the compiler package so that test sources can be written in Go instead of LLVM IR.