Support non-ASCII HTML

Downloaded HTML is parsed using HTML::TokeParser which decodes the HTML into
a Perl Unicode string. When serializing it back into a MIME body, it has to
be encoded again in a binary encoding. UTF-8 seems to be a safe choice that
can be overridden by the user by providing a charset in the $body_attributes.