Move /tests handler into its own middleware

The /tests behavior was coupled to the auto and location behavior, despite the fact that all location types will need to map `/tests` to the `tests/index.html` file.

I've moved tests into its own middleware which also clarifies what the behavior for `/tests` is. This refactor corrects a bug where hash location servers would redirect to `/tests/`.
nop, will fix