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.
receive clicked im: URLs (syntax defined in RFC3860)

This provides a more generic URL format for clickable chat links.  It is
also a lot simpler than the xmpp: RFC5122 format since it does not have
"actions", only a to-address and a query string with key=value pairs.

https://tools.ietf.org/html/rfc3860

refs #4092 https://dev.guardianproject.info/issues/4092