Don't try to add charset parameter for non-text types.

Non-text/* types, such as multipart/*, image/*, and the like often contain
non-text content or content containing data of multiple charsets.  Almost all
those non-text/* types that can use a character set, such as
application/xhtml+xml, can signal this data in-band without the need for an
explicit header.

Additionally, the warning about adding a charset in this case is nonsensical for
types such as multipart/mixed.  Omit the autogeneration of the charset parameter
for non-text/* types.