This was already done in Python3, but having it wrong leads to
incorrect debug output, so it seems worth fixing in 2.7 as well.
Patch by Victor Terrón.
Fixes (mysterious, to the end user) UnicodeErrors when using utf-8 as
the charset and unicode as the _text argument. Also makes the way in
which unicode gets encoded to quoted printable for other charsets more
sane (it only worked by accident previously). The _payload now is encoded
to the charset.output_charset if it is unicode.