Feature/http api

Not suggesting the api is done here, but in retrospect a branch that claims its going to implement more or less the entire project was perhaps overzealous.