GPGME: User ID != Key ID
GPGME: User ID != Key ID

gpgme_signature_t objects refer to public keys (aka "OpenPGP
certificates"), key IDs, and fingerprints.

However, a Key ID is not the same thing as a User ID.

In practice, GMime was confusing things by storing the User ID in the
Key ID field when returing GMimeSignatureList objects from a signed
message, because it was also using the Key ID field as an actual Key
ID when returning the list of recipients of an encrypted message.

This meant that users of a GMimeCertificate object couldn't depend on
the keyid field meaning the same tihng depending on where the
GMimeCertificate object came from.

gpgme's info pages say the following for a gpgme_signature_t struct:

     char *fpr
          This is the fingerprint or key ID of the signature.

in OpenPGP, the key ID is just a truncated fingerprint, so it isn't
unreasonable to store both values in the same spot: the fingerprint,
if the full thing is available, and the key ID if it is not.

This change avoids storing the User ID as a Key ID.  A subsequent
change will extend GMimeCertificate to contain the full User ID when
available.  (note that the User ID is often some combination of the
"name" and "email" fields, though it may be more than that (or
entirely distinct) as well.

jstedfast/gmime,jstedfast/gmime,GNOME/gmime,jstedfast/gmime,GNOME/gmime,GNOME/gmime