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.
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.
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.
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.
Login dialog appears after a failed login.

If the user enters his/her password incorrectly, the dialog appears
again.
New menu option to go back to ConfigurationWizard.

It works ok (it simply starts ConfigurationWizard activity for result),
but when entering again to Dashboard a NullPointer happens in
serviceItemEIP(((ViewStub)
findViewById(R.id.eipOverviewStub)).inflate();).

It also adds (I forgot to commit before leaving the retry-login branch)
ProgressDialogs to login and logout operations.
Check a nullpointer textview.
User messages are added to the new recovery dialog

When login is not successful, a new recovery dialog is prompted with a
message about the previous error.
New certificates are added without creating files

LeapHttpClient can fetch the main CA certificate downloaded from the
provider and add it to its in-memory keystore, without saving the
certificate in a file.

This is a very important feature, I think it can be cherry picked (it has
little modifications, and very localized).
It's very important because authentication does not work without this
bug fix in the latest branches, because I removed the code that saved
the certificate in a file but didn't test the authentication part.