bump to android 19 and appease eclipse
bundle spongycastle 1.5.0 internally

fixes #2425
drop min sdk to Android 2.2 now that we bundle SpongyCastle

fixes #2182
tests: add additional checks for null return value

a null value indicates the crypto failed
refactor crypto operations into separate class

This is to avoid pollution of sensitive code with Androidy things like
Context and SharedPreferences. It also makes the crypto functions
testable without making the API public.
rename important constants for clarity

knowing whether LENGTH refers to bits or bytes is an important
distinction. shame that the various APIs don't standardize :|
register the spongycastle JCE provider where it's used

refs #2425
typo
bump date in LICENSE
add adaptive PBKDF2 iteration calibration function

Currently not hooked up.

Thanks to briar project for the algorithm: briar.sourceforge.net

refs #2252
migrate TODOs to the issue tracker
update to SQLCipher for Android 3.0.2

fixes #3123
refs #2884
hook up the KDF iteration calibrator

refs #2252
move SerializedSecretsX dependency to app layer

versioning of serialized secrets doesn't belong in the crypto layer
implement versioned loading and migration for SS

refs #2252
use configurable KDF itercount in Serialized Secrets

refs #2252

at this stage however the value is still fixed at 100
add PBKDF2 calibration settings

refs #2252
install KDF calibrator

refs #2252

we calibrate the KDF (1) on every encryptAndSave() and
(2) at fetch time if the iteration count is too low.
update tests after KDF calibrator installation

refs #2252
advise use of a thread in the documentation

refs #2252