refactor(http): use constructor for Response object

This makes it easier to identify an HTTP "error" response in a promise error handler.
refactor(commits): don't add an error handler in the commits command

Commands shouldn't need to add error handlers --- if they want to, they need to be sure to return
a rejected promise.
fix(cli): report HTTP errors in CLI

Identify HTTP errors and log them as expected. More info could be added to the HTTP errors, this
should happen later.

Closes #5
feat(http): add request URL to Response object
fix(cli): report url and status code for HTTP errors

Closes #5
Closes #12