moved decodeTransportEncoding to Encoders to make it accessable for other classes
Imap: distinguish about fetching the processed and unprocessed data

This patch tries to make sure that the data are not kept twice in memory unless
asked to, and that the data in the on-disk cache are not duplicated.

One choice to make is what to do when we already know the decoded data and ask
for the raw data once again. The paranoid option would be to have a look at the
cached, already-decoded data and check whether what we have now matches. The
code will, however, simply leave the older data around and neither check nor
overwrite them with the locally decoded copy.
Const correctness for Cache and its implementations
Coding style
Remove processed data from cache when the raw data are stored

The idea is that both base64 and quoted-printable decoding is blazingly fast, so
it makes a lot of sense to conserve space by saving just a single copy on disk.

Note that no checks are made whether both copies of data are actually the same.
We do actively try to catch the server cheating here.