Initial cryptography support

Added openpgp-api as a submodule.
Basic support for encrypting and decrypting files.
Selection of the openpgp provider and setting user ids in the
preferences is yet to be implemented.
Encryption is also very slow at the moment.
Add cryptography options

Add options to specify openpgp user ids to encrypt files with and an
openpgp provider.
Add option to enable cryptography
Start cryptography if enabled
Start cryptography if preference toggled to true

And add some else's to the checks because they weren't there for some
reason.
Get openpgp provider and user ids from preferences
Check for cryptography availability

Add own check which includes a check for android version since the
library has a higher minimum version number.
Merge branch 'master' into cryptography
Add method to check for cryptography errors

The error flag is moved to persist through a whole en/decryption
operation. Having the individual methods all return a boolean would
probably be better than a separate method return the boolean.
Replace Activity with Context

Activity is needed for startIntentSenderFromChild but onReceive in
BroadcastReceiver can only give a Context so it must be cast.
Add encryption after backing up

Encryption of external files will have to wait until they are zipped
also.
And the code duplication should be minimised a little more.
Add decryption when restoring

Add check to see if there are encrypted files in the backup directory
and decrypt them if necessary. External files are ignored for now since
they are not encrypted yet.
Merge branch 'master' into cryptography

Conflicts:
	src/dk/jens/backup/BackupRestoreHelper.java
Add value to log file for status of encryption

A boolean signifying if the backup is encrypted is written to the log
file.
And the boolean distinguishing between user and system apps is renamed
to fit widely used naming conventions better.
Also delete old apk if it has been encrypted
Check if crypto is needed when restoring in batch
Write to error log in a static method

writeErrorLog in ShellCommands is not tied to an instance of
Shellcommands in any meaningful way. Making it static will make it
easier to report errors in settings where an instance of ShellCommands
is not needed or readily available.
Method for logging cryptography errors

Add method to set the error flag and write error messages to both logcat
and the permanent error log file.
Also show cryptography errors
Clean up after encryption and decryption

Move the code to delete the encrypted files and the source files for the
encryption into the Crypto class. This is both used when the encrypted
files or the source files are no longer needed and for cleaning up when
the encryption fails.