Wrapping exceptions as cause of the MendeleyException

The client needs more information of what actually when wrong to show "Not connected to the internet" vs "An error has happened" erros
As we have created the HttpResponseException class, I think it's accurate to use it as the "cause" when a file download fails because a bad HTTP response code.

As a side not, even if I don't think we should fix it now, I think we could set up the HTTP client to automatically follow redirects, and avoid handling the 303 in our code...