Port remaining backend selection tests to Go
Port redirect tests to Go.

This required switching from using http.Client to http.Transport to make
the http requests.  http.Client follows redirects by default, whereas
http.Transport operates at a lower level, and makes a single request.
This is what we want for these tests.
Port gone handler tests.

Also DRY up the route_helpers a bit.
Add helpers to capture router log output.
WIP proxy function tests.