Make the redirector build fail if any hosts are uppercase
Condense unique and lowercase checks into one

- This is so we don't iterate over all the hosts twice as this would
  cause the build to slow down.
Centralise `require`s in `lib/redirector`

* Make `test_helper` require that and any minitest dependencies
* To fix an environment-sensitive require order build failure