Handle HTTP exceptions when fetching data.

The old libcurl bindings returned an empty string when a page could not
be found (HTTP 404). On the other hand, Network.HTTP.Conduit throws
exceptions on non-2xx status codes so those need to be handled so they
don't get propagated.