Merge resource_for_klein-13

This closes issue 13, resource for klein.

The branch's entire goal is to make use of Klein for all app routing. New tests
have been added as well. Where the application was previously a set of
resources all contained under a single site, the new version makes use of many
smaller klein applications that are then server by Internal and External API
factories. These factories exist to simplify setup.

As this branch has sprawled, the makefile has improved, and many other smaller
linting changes has been fixed.