run JUnit tests using android-junit-report to get XML output

Jenkins needs some kind of report from the JUnit tests in order to tell
whether the tests succeeded or not.  android-junit-report is a library to do
exactly that.  With this setup, Jenkins should now successfully understand the
status of the JUnit tests, where before it just ran them and ignored the
results.
add `ant javadoc` to generate javadoc for FDroid sources
script to do android ant configuration
add script for Jenkins build

Having everything in a script makes it easier to maintain.  Jenkins then
runs the ant commands itself.
add missing res/ folder from test project
setup-ant: use a CURDIR variable
include pin: Guardian Project RSA 1024-bit original signing key
include pin: Guardian Project RSA 4096-bit signing key
include pin: Tor Project RSA 1024-bit signing key
make startActivity() handle both setPackage() and setClassName()

An Intent can be targeted using both setPackage() and setClassName().
setPackage() narrows down the possible recipients to a given packageName,
while setClassName() set the specific Activity in an app to send to. The
trust check is based on packageName since that is what the APK signature is
tied to.  So if getPackage() turns up nothing, then try getComponent(),
which fetches the CompenentName which is a representation of the thing that
was set using Intent.setClassName()
startActivity() comes from Context not Activity

Reflect this reality in TrustedIntents.startActivity()
make addTrustedSigner's argument a Class rather than ApkSignaturePin

There is no sense in anyone instantiating the class since it is in effect a
singleton, and the only instance methods are for validating that the
certificate matches the fingerprint.  Using a Class as an argument mirrors
the syntax of new Intent(Context context, Class cls).
ApkSignaturePin: remove useless and unused getSHA256Fingerprint argument

getFingerprint() accesses the instance variable directly for the data.
isReceiverTrusted() and isIntentSane() check getComponent() for packageName

The packageName can be set with setPackage(), setClassName() or setClass().

* getPackage() returns what is set by setPackage()
* getComponent() returns what is set by setClassName() and setClass()
addTrustedSigner() returns whether add was successful or not

At the very least, this is useful in the tests.
test that addTrustedSigner() will not accept ApkSignaturePin.class
add methods to remove Trusted Signers test if ApkSignaturePins are trusted

Since TrustedIntents is a singleton, there needs to be a way to remove
items from the list of trusted pins.  Getting the instance will inherit any
pins that were set in the past by a given app.
tests: get TrustedIntents instance in setUp()

Most of the tests need an instance, and it should be cleared each time.
store PackageManager in static var so it can be used in static methods

Android has some design patterns that based on static methods, like
Intent.createChooser(), that this library should mirror.  In order to
implement those, they will need access to a PackageManager instance, so
store the one we have in a static var.
tests: use list of actually installed packages for tests

The tests includes lists of possible package names, now this creates a list
from those lists of the packages that are actually installed.  That will
make the tests run reliably on various devices and emulators.