api: using negroni as middleware and gorilla to share context
api: using gorilla mux instead of pat, cleaner path matching
api: clean up in router and middleware tests