fix crash when selecting "verify" from a chat

I also removed dead code and renamed somethings to make the code easier to
follow.

closes #3880 https://dev.guardianproject.info/issues/3880
fix crash if mProviders is reset while loading

closes #4166 https://dev.guardianproject.info/issues/4166
fix crash if logout during contacts list sync

closes #4167 https://dev.guardianproject.info/issues/4167

Here's the stacktrace:

java.lang.IllegalStateException: Not logged in to server.
at org.jivesoftware.smack.Roster.createEntry(Roster.java:281)
at info.guardianproject.otr.app.im.plugin.xmpp.XmppConnection$XmppContactListManager.doAddContactToListAsync(XmppConnection.java:2213)
at info.guardianproject.otr.app.im.engine.ContactListManager.addContactToListAsync(ContactListManager.java:384)
at info.guardianproject.otr.app.im.engine.ContactList.addContact(ContactList.java:107)
at info.guardianproject.otr.app.im.service.ContactListAdapter.addContact(ContactListAdapter.java:52)
at info.guardianproject.otr.app.im.app.AddContactActivity.inviteBuddies(AddContactActivity.java:205)
at info.guardianproject.otr.app.im.app.AddContactActivity$2$1.run(AddContactActivity.java:274)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5319)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
update to latest android-support-v4.jar (v21.0.2) to fix crashes, hopefully

closes #4169 https://dev.guardianproject.info/issues/4169
update to latest android-support-v7-appcompat.jar (v21.0.2) to fix crashes

closes #4169 https://dev.guardianproject.info/issues/4169
don't throw unhandled Exception if audio message is unplayable

When it is not possible to find the audio message to play, don't just crash
on a pointless, unhandled Exception. Instead put the error in a Toast, for
now.  I'm sure this can be presented to the user much better, but this at
least stops the crashes.

closes #4172 https://dev.guardianproject.info/issues/4172

here's the stacktrace:

java.lang.RuntimeException: Unable to start activity ComponentInfo{info.guardianproject.otr.app.im/info.guardianproject.otr.app.im.ui.AudioPlayerActivity}: java.lang.RuntimeException: java.io.IOException: File not found /2/download/Voice+102.3ga
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.RuntimeException: java.io.IOException: File not found /2/download/Voice+102.3ga
at info.guardianproject.otr.app.im.ui.AudioPlayerActivity.play(AudioPlayerActivity.java:96)
at info.guardianproject.otr.app.im.ui.AudioPlayerActivity.onCreate(AudioPlayerActivity.java:53)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
... 10 more
Caused by: java.io.IOException: File not found /2/download/Voice+102.3ga
at info.guardianproject.util.HttpMediaStreamer.create(HttpMediaStreamer.java:50)
at info.guardianproject.util.HttpMediaStreamer.<init>(HttpMediaStreamer.java:30)
at info.guardianproject.otr.app.im.ui.AudioPlayerActivity.initPlayer(AudioPlayerActivity.java:140)
at info.guardianproject.otr.app.im.ui.AudioPlayerActivity.play(AudioPlayerActivity.java:93)
... 14 more
null guard for AddContactActivity.setupAccountSpinner()

Something is causing the managedQuery() to fail to return a cursor.  Just
use a null guard for now to prevent crashes.

closes #4175 https://dev.guardianproject.info/issues/4175

Here's the stacktrace:

java.lang.RuntimeException: Unable to start activity ComponentInfo{info.guardianproject.otr.app.im/info.guardianproject.otr.app.im.app.AddContactActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at info.guardianproject.otr.app.im.app.AddContactActivity.setupAccountSpinner(AddContactActivity.java:122)
at info.guardianproject.otr.app.im.app.AddContactActivity.onCreate(AddContactActivity.java:97)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
... 11 more