Modify BinaryTempFileBody to retain the encoded body

For now this breaks a lot of things, e.g. saving messages to the database
and making messages 7-bit safe.
Fix setUsing7bitTransport() functionality for BinaryTempFileBody
Add helper method to decode message bodies

Depending on whether a Body implements RawDataBody (which indicates the class
retains the original encoding) the helper method either strips the transfer
encoding or simply returns the result of Body.getInputStream().

This should restore the original functionality. So saving messages in the
database should work fine again.