Merge branch 'eighthave-fix-crashes-related-to-large-background-bitmap'
add new low-res versions of default background
only single background image file needed, its dynamically resized

As far as I understand the code from Google's recommended approach for loading
large background images, it is reading a resized version into memory, so there
isn't really a need for different sizes of the background image.  It would
only save a little CPU time, which doesn't seem worth the added complexity.

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

This reverts commit 0a040b26d2d21f45fd6066ef316e53c4f81ebc3a.
             "add new low-res versions of default background"
move Orbot market: link to donottranslate.xml

No need to translate the market: link, the app or website that handles
that URI scheme will do the translation (e.g FDroid, play.google.com)
purge unused string arrays: languages and languages_values

These two arrays are now dynamically generated from the locales that are
included in the app.
purge unused XML bits
purge OtrContants, only a single value is used (helps with otr4j merge)
move OTRDATA TLV definitions to where the other TLVs are defined

This helps with the otr4j merge.  It shouldn't change the logic at all.
define generic Map type for getting ProviderSettings

This makes it possible to run tests by only creating a HashMap, rather than
having to create a whole Imps setup in the tests.
put XMPPConnection config entirely into a single method

This enforces keeping the config in a single place, and also allows the
config method to be used in tests.  Hopefully this did not change the logic
at all.
move creating SSLContent to method to avoid code duplication and ease testing
move XMPPConnection basics to setUp() and tearDown()
make getSSLContext() so we can choose which TLS version, fix testSettingCipherSuites()
make reusable ConnectionListener that includes the tested domain name

The ConnectionListener can be called after the test framework has moved on,
so sometimes it gets the failed connectionClosedOnError() call when it is
running another test.  Then it gets confused and quits, but in the wrong
spot.  This then points you to the real error in logcat, since it has the
domain name in question above the stacktrace.
test that the recommended domains support TLS v1.2
test whether setting cipher suites works in ConnectionConfiguration
switch out custom bouncycastle repackage for spongycastle

https://rtyley.github.io/spongycastle/
spongycastle is a standard repackage of bouncycastle for Android:

The Android platform unfortunately ships with a cut-down version of Bouncy
Castle - as well as being crippled, it also makes installing an updated
version of the libraries difficult due to classloader conflicts.

Spongy Castle is the stock Bouncy Castle libraries with a couple of small
changes to make it work on Android:

* all package names have been moved from org.bouncycastle.* to
  org.spongycastle.* - to avoid classloader conflicts
* the Java Security API Provider name is now SC rather than BC
* no class names change, so the BouncyCastleProvider class remains Bouncy,
  not Spongy, but moves to the org.spongycastle.jce.provider package.
replace custom renamed bouncycastle with the real thing

It seems that you can now use the real bouncycastle in Android apps.
WIP DO NOT MERGE: tests for unpinned domains, and the default trust manager