Simplify/change result type of KeyResolver and its internal helpers
KeyResolver:
- Use a single method for returning the result
- Remove the by-protocol mappings from the signing/encryption key result; the protocols of the keys are known by the keys
KeyResolverCore:
- Return a preferred solution and, if applicable, an alternative solution instead of hard to interpret by-protocol mappings
NewKeyApprovalDialog:
- Use preferred and alternative solutions of KeyResolverCore instead of merged key mappings
- In single-protocol mode use separate widgets for OpenPGP and S/MIME keys; this way the widgets keep the currently selected keys, when the user switches between OpenPGP and S/MIME
- In mixed-protocol mode use separate widgets for OpenPGP and S/MIME for the sender's signing and encryption keys and multi-protocols widgets for the recipients' encryption keys
- GnuPG-bug-id: T5283