Introduce keyprovider interface

There's a small chance that the user id grabbed from the DB and the one determined by getMainUserId() are not the same. I don't think so, tho.
I think none of those things should come out of the database when key/keyring are known inside the pgp-package.

I couldn't cleverly rewrite this for isSignatureKeyCertified, so in that case I cast mKeyProvider to ProviderHelper again to have it working for now, but that, too, should have a helper function and later be moved into a Key/KeyRing abstraction.