Fix ConcurrentModificationException when removing VpnProfile from iterator backing Collection
Merge branch 'hotfix/exception-parsing-gateways' into develop
Coded new fragment appearance

Domain, name and description come from provider.json

Next step: code buttons to login or to use anonymously.
Use anonymously from ProviderDetail works OK.

Tested with dev.bitmask.net, I use the previously downloaded certificate
(I should not do that, I'll file an issue because I should download it
once the user has requested to do so).

Next step: login button from ProviderDetailFragment.
Login button from ProviderDetailFragment works.

I return an intent with ConfigHelper.LOG_IN extra present. Dashboard
looks for it, and if found, starts LogInDialog.
Removed unnecessary toasts.

They are commented, just in case we decide to include any of them before
releasing 0.2.0.
JSONExceptions from ProviderDetail returns false.

Buttons from this fragment are shown if the key is present and contains
a "true" value, but if an exception occurs the button it's not showed.
Merge branch 'feature/provider-details-fragment' into develop
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.
UnknownHostException separated from IOException.

I was treating the former exception simply as a kind of the latter, but
user messages are different. Now, each one shows its different error
message.
Merge branch 'feature/messages-providers-unavailable' into develop
Pressing back button, we don't choose any provider

Once in the provider detail fragment, if the user presses the back
button, provider.json is removed from sharedpreferences (so that
Dashboard does not start as if the user had selected the canceled
provider) and ConfigurationWizard gets the focus.
Back button from ConfigurationWizard quits.

If the user decides not to choose any provider, the app quits. I'll
create another branch to handle this exit properly, warning the user
with an AlertDialog as suggested in #3023.
ProgressDialog works ok when discarding providers.

If the user selects a provider, gets into provider detail, discards it,
further trials of selecting a provider trigger the same ProgressDialogs
than the initial trials.
Merge branch 'feature/switch-provider-from-provider-detail-fragment' into develop
Added menu to ConfigurationWizard.

It only contains the "About LEAP" option.

If the user clicks again that option while the About fragment is up, no
new fragment is added and pressing 1 time the back button drives him/her
to the ConfigurationWizard activity.