message: encode/decode Unicode payload

The Python email modules do not automatically encode/decode payloads,
the charset must be applied manually.  Note that emails also have a
content transfer encoding like base64, which is different from the
charset.

This patch decodes email payloads to Unicode and then encodes them again
to generate mbox files.  This solves several problems including
non-ASCII tag values being inconsistent compared depending on their
email encoding (e.g. UTF-8 and Latin-1 strings will not be equal even
though they show the same Unicode characters).

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>