Stop swimming against the tide and accept what most of the rest of
the world does.
While it adds an annoying depth to the actual source code, it makes
the root directory nicer (no more 'test-res' dirs), means we don't
have to override the gradle config, and makes it nicer to work in
IDEA 2016.1.
The handler can't be dependency injected (as it's created by the
framework) so, in order to minimise the amount of static
horribleness, pass in a controller which can do the actual work
and have proper dependencies.