Handle fingerprints of subkeys gracefully

When a user has `with-fingerprint` in their gpg.conf, fingerprints of
subkeys will be output as well. We therefore pass --with-fingerprint to
gpg twice to force the same output for all users.
Fingerprints of subkeys must not be used for the list of public keys,
otherwise keys with many subkeys are much more likely to be chosen for
an update.
Remove v3 fingerprints from getPublicKeys()