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
The client needs to discriminate "No Internet" errors (ie: timeouts, no connection, etc) vs other erros (ie: 505) to show the proper user facing message in the error toast.

Besides, 505 errors were reporting as "JSON parsing errors" in Crashlytics, which is not accurate.