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).