remove drawables targeted at android < 9 since minSdk is 9
load background bitmaps in a custom AsyncTask

In order to support devices that do not have tons of RAM, dynamically size
the background bitmap when loading so only what is needed is stored in RAM.
Also, there is a much stricker limit of memory allocation when operating in
the main UI thread.  More info here:

https://developer.android.com/training/displaying-bitmaps/load-bitmap.html
https://developer.android.com/training/displaying-bitmaps/process-bitmap.html

fixes #4277 https://dev.guardianproject.info/issues/4277
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