Refactor routes to be controller objects

Refactor and shuffle code around once more. This moves the various endpoint logic into standalone objects that can later have tests added. I needed to add Pimple as Slim is quite lacking in the dependency management area (as expected). I was able to remove some goofy code (Xhgui_Db) and refactor other things away. There is still more to be done but this is a decent start and should be the last big overhaul that is needed for a while.

I moved the tests and test fixtures into a separate `test_` prefixed database as I've more than once truncated all the data in my database by missing a test_ prefix somewhere. It is now much much harder to make that same mistake in the future.