Add file key storage

Still TODO:
 - don't assume AES for symmetric and RSA for asymmetric, this should be configurable (may involve changing the interface, though)
 - RSA decrypt runs into a BadPaddingException; can't seem to figure out why (exception message: data must start with zero); tried different padding schemes and verified that the reads/writes weren't corrupting the private key but didn't solve it