after creating a new account, automatically sign in

This was confusing a lot of users, and when setting up either XMPP or
google existing accounts, those automatically login.  Reduce the clicks
needed to get running!
in "New Account", only show Google option if there are Google accounts

Before, if there were no Google accounts on the device, then adding an
account here would only give you a blank list to choose from.
when user selects "End chat", also send OTR FINISHED message

The "End chat" is a very distinct action that is not often taken.  It also
deletes the existing history, etc. so the expectation is that it sets
things up to be more secure.  Therefore, it should also send the OTR
FINISHED message.  That signals the other side of the conversation that OTR
is no longer available, so no message encryption will happen until a new
OTR session is negotiated.  That will prevent the user from mistakenly
sending a message that goes through unencrypted.
use ImConfigNames.PROTOCOL_NAME as constant in all relevant places
purge unused code from NewChatActivity and MessageView
RESULT_CANCELED is a static variable in Activity
CLOSE ALL THE THINGS! aka "Resource leak: 'foo' is never closed"
fix lint warning: "Should use "sp" instead of "dp" for text sizes"
fix lint: "Implicitly using the default locale is a common source of bugs"

"Implicitly using the default locale is a common source of bugs: Use
toLowerCase(Locale) instead"
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
simplify google account string
update support jars
fix NPE
updating jars to 21.0.2