This speeds up the smoke tests by over 5x on my laptop, but keeps two
features that I find very important:
1. A stable output, which is used by tools like sizediff.
2. An easy to change text file with all the smoke tests.
This means that parsing is a little bit harder, but with the help of
packages like shlex and flag this is actually not very difficult.
Since TinyGo started supporting Go modules, there was an error in CI.
The commit 7967e82fed tries to fix that,
but I think the underlying issue is that we're checking out in GOROOT,
which is definitely not a supported configuration.
I think the best solution is to just switch to using Go modules, by
adding a go.mod file in the root. I've set it to Go version 1.13 as that
is the first Go version that supports number literals, but it could be
set to any supported Go version (1.11-1.14).
Since we use Go modules, the location of the drivers checkout should not
matter so I've removed it. This fixes the error on CircleCI.