Refactor for multuple repo support

This is a large refactor, renaming some things
for clarity, breaking things up into slightly
more self contained units, and bringing gorilla
mux back in to help build a richer api