Refactor the address list generation out of the find_keys routines.

All four find_keys routines have a similar set up code for generating a
single address list out of the to, cc, bcc lists.  This patch pulls all
the code into crypt_get_keys.

This is done to simplify the functions before later patches make them
more complicated (with the auto_mode parameter).
Introduce an auto_mode parameter

It's added to the parameter lists through the call stack down to the
find_keys calls.

No functionality is implemented yet.  This patch is separated just to
keep other patches more readable.
Pull is_numerical_keyid() into crypt.c.

A subsequent patch (re?)-introduces a call to is_numerical_keyid inside
find_keys().  Rather than duplicate the function, this patch pulls it
into crypt.c, where find_keys() and pgp_findKeys() can both call it.
Implement auto_mode in the find_keys methods.

auto_mode is used by crypt_opportunistic_encrypt to determine whether
there are valid keys for all recipients of a message, without prompting
the user.

The patch wraps around prompts, and makes getkeybyaddr methods return a
valid key without prompting.

crypt_getkeybyaddr() seems to be a bit different from
pgp_getkeybyaddr().  In my testing, the gpgme method was NOT finding
a single key in cases where the classic pgp method was.  To make
opportunistic_encrypt the most useful, I made both these methods return
a key if they found ANY valid keys.

The patch also enables a call to crypt_is_numerical_keyid() in
find_keys(), so that crypt-hooks can actually be checked without
prompting when gpgme is enabled.  (The addition was patterned off of the
pgp_findKeys() function).
Implement crypt_opportunistic_encrypt().

This function will be called to flip encryption on and off based on
message recipients.
Add the crypt_opportunistic_encrypt option and calls.

This patch creates the OPTCRYPTOPPORTUNISTICENCRYPT option and
documentation.

It also adds calls to crypt_opportunistic_encrypt() during initial
message composition, after updating to, cc, or bcc, and after editing
the message (if edit_headers is enabled).