HTTP REST API infrastructure - fixes 886

Fixes #886.

Code is still camelCaps, we can fix that later sometime. Some code is still unported, in particular the Sphinx extension; we can do that when we get to writing documentation.
I think there's an Eliot ticket for this.  A link to it would be nice here.