Fix error in download_attachments() triggered by python2 unit test

The download_attachments error is triggered in the unit tests by a japanese
error message (接続を拒否されました) (connexion denied), that
python is not able to serialize the into a byte string.

This error weirdly does not appear every time the unit tests are run.
It might be related to the order in which the tests are run.

This error was found and fixed during the PyconUS 2014 pelican
sprint. It was discovered on a Linux Fedora20 computer running
Python2.7 in virtualenv
Merge pull request #1308 from al-tonio/download_attachments_japanese_error_msg_fix

Fix error in download_attachments() triggered by python2 unit test
Cache content to speed up reading. Fixes #224.

Cache read content so that it doesn't have to be read next time if its
source has not been modified.
Add s3cmd MIME type detection