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