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.

This has been tested against Ruby 1.8, 1.9.3, and 2.0. In each case, the two new tests fail before the fix and all tests pass afterwards.

This also addresses issue #596.