Add more test coverage for handlers

Rework test interface implementations to be configured using variadic
functional configuration => simpler client code.

Use Context more, and extract out common test setup.

Change error response format:

- add status and message field
- allow multiple errors to be rendered
- add Gomega Matcher for checking HTTP API responses
- DRY tests

Probably want [this diff](https://github.com/alphagov/performance-datastore/pull/17/files?w=1).