Port integration test suite to Go

This ports the ruby integration tests to Go.  This now follows the pattern established in the CDN acceptance tests, whereby the test suite spins up its own backend servers, and tests communication to them via the external service under test (in this case, the router running in a separate process on the local machine).

This is probably easier to review commit at a time.

Some of the reasons for doing this are:

* It's more efficient - there's no longer a need to spin up and teardown separate backend server processes throughout. (This has caused some intermittent failures in CI in the past - eg https://ci-new.alphagov.co.uk/job/govuk_router/90/console)
* Context-switching between ruby and Go while working on this was always a little jarring.
* For my own learning ;-)