refactor SetMIMEEncoding functionality( see also #17680 )

incoming mail:

1) find encoding
2) if found then try to convert to utf-8 in croak mode, return if success
3) guess encoding
4) if guessed differently then try to convert to utf-8 in croak mode, return if success
5) mark part as application/octet-stream instead of falling back to any encoding

outgoing mail:

1) find encoding
2) if didn't find then do nothing, send as is, let MUA deal with it
3) if found then try to convert it to outgoing encoding in croak mode, return if success
4) do nothing otherwise, keep original encoding
more tests for RT::I18N::SetMIMEEntityToEncoding
Merge branch '4.2/set-mime-encoding-refactor'

Conflicts:
	t/mail/sendmail.t