add build metadata to jar file to aid reproducible builds

This moves jar creation to `ant release`.

To provide build security, it should be possible for anyone to run the
build process and end up with the same result as Zetetic.  To aid that
process, this adds metadata to the release jar that specifies which
versions of Java, Android SDK, and Android NDK were used to build the
official release.
add `ant javadoc` to generate javadoc to include in releases
use faketime, if available, to set the build time based on the git commit

If the `faketime` utility is available, use it to fix the time of the build
based on the time of the current git commit.  This makes the build process
reproducible since anyone who builds it from git will end up with a build
that has the same exact timestamps.

You can get faketime from various package systems:
 apt-get install faketime
 brew install faketime
 port install libfaketime
remove commons-codec.jar and guava-r09.jar from Eclipse project
methods for handing raw key directly to sqlite3_key() and sqlite_rekey()

This provides methods for handing the raw AES key data directly to
SQLCipher, skipping SQLCipher's key derivation process. This allows an app
to make their own key derivation process.  This is how we already handle
things with CacheWord, which uses 32 random bytes for the raw key, then
manages sending that raw key to multiple things that need to be unlocked
(SQLCipher-for-Android, IOCipher, RSA keys, etc).