test-ggspec: define new test suite API

And rewrite all tests in terms of the new API. Using the test suite
itself to bootstrap the new API.