Distinguish non LEAP provider and down provider.

I've set ProviderAPI to show its own toast depending on the exception
that getStringFromProvider issues. If the socket timeout reaches its
end, a toast different from when an IOException or a MalformedException
occur.
Shows certificate error message.

If a download didn't occurr due to an IOException, we assume it was for
an SSL error and notify the user telling him/her that LEAP provider is
not trusted.
Substituted IOException by SSLHandshakeException.

In getStringFromProvider, there is no IOException but an
SSLHandshakeException. Substituing this gives our code more semantics.
Back to IOException instead of SSL exception.

The previous commit broke functionality, and instead of discarding it
I've decided to undo with a new commit for future references.

It would seem that IOException can be substitued by
SSLHandshakeException, but the previous commit proves it cannot.
Untrusted message is not shown if danger_on = true

I forgot to add an else in the IOException from getStringFromProvider.
This was causing that even if the user checked the trusted completely
beckbox and everything was fine, the "not trusted provider" message was
being shown.