crypto changes for exports

* allow DecryptingPartInputStream to start reading from a specified offset in a file (to support headers, etc.)
* allow EncryptingPartOutputStream to write in appending mode to a file instead of overwriting
* "enhance" the getters and setters in IdentityKeyUtil and MasterSecretUtil to deal with getting MasterSecret objects from places other than SharedPreferences


Yeah, you're right. When I wrote this I figured it would throw once it fully failed to initialize the cipher, but if skip failed we have no real idea what our state is.