initial http endpoints framework

This is the initial framework for the http endpoints.  The API has not been started yet but everything we should need for building that and the remaining html endpoints should be in this commit.

Work will continue in this branch after this merge, this is just to bring the master up to date.