Return an error when fetching a URL returns an HTTP error.

The error never makes it back to the use (it's always returned in a
task), but at least it gets logged…

Fixes #66.