set NDK_TOOLCHAIN_VERSION and NDK_PLATFORM_LEVEL from the Android files

make external/Makefile get NDK_TOOLCHAIN_VERSION and NDK_PLATFORM_LEVEL
from the official Android files for setting those build vars.
gnupg-for-java: fix crash when get sigs on a key when none are returned

If a key has no signature data, or the key list most does not include
signature data (i.e. GPGME_KEYLIST_MODE_SIGS), then siglist will be null.
The methods that call getSignatures() should handle a null return value.

closes #1698
single-quote all filenames passed to CLI gpg2 to handle special chars

This is a quick workaround for now, since ultimately we'll be using gpgme
calls instead of gpg2 command lines.  gpgme will handle the more elaborate
escaping for us. This should handle spaces, and all characters except the
single-quote itself (').

fixes #1709
fix file extension parsing when working with filenames rather than URIs

MimeTypeMap.getFileExtensionFromUrl() expects a String that is a URI.
URIs cannot have spaces or special characters in them, so that method can't
be used with straight filenames. I replaced it with Apache Commons IO
FilenameUtils.getExtension().

fixes #1709
EncryptFileActivity: fix crash when trying to find default key

There might be no keys at all, so it shouldn't just crash then.