Standardized http errors in REST server

Every http error thrown by the REST api will follow a new format where error messages are determined by the http error code that was thrown, and a description is supplied by the endpoint.

Also, updated descriptions thrown by the recording api to make descriptions clearer.
FYI, the numeric index isn't needed. `"{} {}".format(foo, bar)` works as well.

I tend to use the indexing when I want to reuse variables or change the order, e.g. `"{0} {1} {0}".format(foo, bar)`