Print a nice error message when GPG can't verify messages

This used to abort() when GPG had an internal error while trying to
verify a message.  It now prints out the GPG error and shows the
message as not validated.
Handle multipart/signed inside multipart/alternative

This explicitly prefers the multipart/signed parts of
multipart/alternative parts above all others under the assumption that
they contain the text we want to see.  There is a fallback to
text/plain whenever there isn't a text/plain part within the
multipart/signed part, as I strongly prefer plain text mail.

While this is kind of odd, I'm actually going to start sending my own
mail this way because it'll allow my mail to be shown on only
somewhat-complient clients (those that support multipart/alternative
but don't support multipart/signed).
Send both multipart/signed and text/plain

So it turns out that some poorly written mail clients don't support
multipart/signed but do support multipart/alternative.  I now send two
copies of all my mail, structured as follows:

multipart/alternative
  text/plain
  multipart/signed
    text/plain
    application/pgp-signature

According to the MIME spec, the LAST displayable part should be
preferred*, so if clients understand multipart/signed they should
transparently show it, otherwise they should fall back (this might not
be transparent, but I'd hope it usually is).

I guess I should probably really just throw a third copy of the
message into the preamble, so non-MIME clients can read it...  That
seems kind of excessive, though!

* Note that MHng doesn't do this, it instead ignores the ordering and
  selects what it thinks is best -- this is probably OK because I'm
  really just hunting for text/plain, but I should modify this to at
  least show the last text/plain)