ImApp.setNewLocale uses new setLocale() method on >= android-17

Also, set the pref after setting the locale in cause of crash/exception
remove empty translations so they don't show up in the languages list

Soon, the list of available languages will be dynamically generated, so
empty translations would be misleading.
check status of pref.commit() otherwise just use pref.apply()

apply() does it in the background, but does not provide confirmation.
commit() provides confirmation, but is only useful if the return value is
checked.  apply() happens in the background and commit() in the foreground,
so using apply() should keep things more interactive. The SharedPreferences
docs recommend using apply() if the return value of commit() is ignored.
use system names for Languages preferences menu

Instead of maintaining our own list of the names of the languages, use the
Java names by requesting the "display language" of each locale in that
locale.  This makes only one menu item per language, there are no country
variants supported to keep the list short.  The exception is zh_CN and
zh_TW since there is generally no zh language.  We also have to manually
include 'bo' Tibetan since the system often does not support it.
ImApp.checkLocale() removed unused return value

Just cleaning things up so it is easier to make sense of things...
don't use android.R.string, it might not have Tibetan and others
add button to first launch lock screen to change language

This uses the globe icon that android-21/5.0/Lollipop uses to represent
"Languages & Input" in the Settings app.  It makes it a little button on
the initial version of the lock screen so that users can change language
on the very first screen that they see.
purge unused menu from WelcomeActivity

Since WelcomeActivity no longer has its own visual representation, its menu
will also never be shown.  Therefore I purged all code related to the menu
to eliminate confusion.  If anyone ever needs it, it'll always be in the
git history.