Added an HTTP interface to `project_deploy`.

The extra line added to `api_function` gets around an exception flask
was throwing wrt duplicate function names for views.

The URL and HTTP method are different from what was previously documented
in `doc/rest_api.md`; the docs have been updated to match.