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.
Maybe `httpapi.py`?