Check for "Re:" at start of subject in case insensitive manner

To avoid a subject ending up like:

    "Re: RE: RE: RE: original subject"

That I've seen a few times.

The fix is to lower case the subject and the strings to compare against
before calling startwith()
On retagprompt, append a comma

So we don't have to remember to type the extra comma before typing a new
tag.
in retagprompt, sort the tags

So the tags are in a predictable order.
retagprompt: skip empty tags

(and so avoid having a leading comma)
Fix missing space in error message
crypto: eliminate invalid keys for gpgme.ERR_AMBIGUOUS_NAME in get_key

Previously when Context.get_key raised gpgme.ERR_AMBIGUOUS_NAME crypto.get_key
would not verify the ambiguous keys are actually valid for
signing/encryption.

Now when gpgme.get_key raises ERR_AMBIGUOUS_NAME we elimitate those invalid
keys. If there is only one valid key left we return it, otherwise re-raise
Improve documentation for crypto.get_key

Expand docstring and explain handling of ambiguous keyid
add --tags option to global taglist command

that sets a whitelist of tag strings to be displayed
cf issue #662
added support for custom path completion using an external command
Remove duplicate code to read path_completion_command setting

The instantiation of the appropriate *PathCompleter instance is
now done automatically by the PathCompleter class which will read
the path_completion_command setting, instantiate the good class
and proxies the completion request to the good completer.
make sure we don't use CustomPathCompleter for attachments or threads saving