Minor tweaks to mail.decode_{header,body}.

Most fixes were related to the str-or-bytes nuances of the
email package:
- mail.decode_header now correctly handles the case where
  the "decoded_string" returned by email.header.decode_header
  is a bytes object but the "charset" is None.
- mail.decode_body now plays nicer with
  email.message.Message.get_payload and the delicate decoding
  is duly documented.

We also treat MIME multipart messages as though they had
empty payloads-- slightly better than crashing.