fix crash when setting presence to "not subscribed"

java.lang.IllegalArgumentException: invalid presence status value
at info.guardianproject.otr.app.im.engine.Presence.setStatus(Presence.java:145)
at info.guardianproject.otr.app.im.engine.Presence.<init>(Presence.java:71)
at info.guardianproject.otr.app.im.engine.Presence.<init>(Presence.java:66)
at info.guardianproject.otr.app.im.plugin.xmpp.XmppConnection.handlePresenceChanged(XmppConnection.java:2883)
at info.guardianproject.otr.app.im.plugin.xmpp.XmppConnection.access$2800(XmppConnection.java:130)
at info.guardianproject.otr.app.im.plugin.xmpp.XmppConnection$12.run(XmppConnection.java:3015)
at java.util.Timer$TimerImpl.run(Timer.java:284)
remove defunct XMPP server from recommended list: rkquery.de

rkquery.de has been offline since 20 Apr 2014 00:23 UTC according to
http://www.jabberes.org/servers/
test whether pinned domains are working properly with the pins

This sets up a fake, simplified trust manager with only AndroidPinning,
then tries to connect to each of the XMPP servers that should be pinned:
Google, Facebook, jabber.org, and the list of recommended servers.
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