Run tests in parallel

It's a lot of files, but the approach is simple; run each test task on a different port. This means they can run concurrently (limited to 4 concurrent test tasks).

Locally, a test of root was taking around 52 seconds, versus 91 seconds before.