Eliminate the need for reflection to access hidden API
Extract code into new LocalKeyStore class

Also, implement the ability to configure an alternate key store
file location. This permits the running of unit tests without
clobbering the live key store file.

Also, add a test to confirm that the key store file is being written
out and reread correctly.
Move some classes out of com.fsck.k9.mail.store

The classes are just as much related to com.fsck.k9.mail.transport
as com.fsck.k9.mail.store, so having them in
com.fsck.k9.mail.store doesn't seem appropriate.

Move LocalKeyStore to com.fsck.k9.security

Move TrustManagerFactory and TrustedSocketFactory to com.fsck.k9.net.ssl
Implement pruning of old certificates from LocalKeyStore

Certificates are deleted whenever server settings are changed
or an account is deleted.
"upgrade" the LocalKeyStore

Implement an "upgrade" capability for the key store file,
and then use it to delete the old file.

The existing certs in the old file are not a security
risk, but they are now useless because the format of
their aliases was changed in commit a4440b4.  They now are
just taking up storage space and memory.

Users will need to re-accept *ALL* certificates that they had
previously accepted and are still using.  (Actually, this requirement
was effective with commit 4b57d79a.  Before that, certificates whose
Subject matched did not require re-accepting.)
Merge branch 'cert_validation' of git://github.com/k9mail/k-9.git into cert_validation

Conflicts:
	tests/src/com/fsck/k9/mail/store/TrustManagerFactoryTest.java
Move unit test class to match changes in commit 40404c3
Remove LocalKeyStore's dependency on Account to reduce coupling
Remove LocalKeyStore's dependency on K9.app