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