Limit and filter logs

Drop duplicates logs.
Allow for logs to be grouped, enforcing a maximum number of logs per group.
Add the LOG_FILTER setting to ask from the configuration file to ignore some
logs (of level up to warning).
Minor correction to settings documentation
Fix unittest issue related to python2/python3 differences

The test_datetime test passed on python3 but not python2 because
datetime.strftime is a byte string in python2, and a unicode string in python3

This patch allows the test to pass in both python2 and python3 (3.3+ only)
Merge pull request #1030 from Rogdham/filter_log

Limit and filter logs
Merge pull request #1307 from al-tonio/datetestfix

Fix unittest issue related to python2/python3 differences
Minor text changes to log message limitation
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
Added new sphinxtheme as requirement for docs Modified docs conf to support the theme update
Fix unittest issue related to python2/python3 differences

Under python 2, with non-ascii locales, u"{:%b}".format(date) can raise UnicodeDecodeError
because u"{:%b}".format(date) will call date.__format__(u"%b"), which will return a byte string
and not a unicode string.
eg:
locale.setlocale(locale.LC_ALL, 'ja_JP.utf8')
date.__format__(u"%b") == '12\xe6\x9c\x88' # True

This commit catches UnicodeDecodeError and calls date.__format__() with byte strings instead
of characters, since it to work with character strings
Make sure locale is what we want before/after the tests

The locale is a global state, and it was not properly reset to
whatever it was before the unitttest possibly changed it.
This is now fixed.

Not restoring the locale led to weird issues: depending on
the order chosen by "python -m unittest discover" to run
the unit tests, some tests would apparently randomly fail
due to the locale not being what was expected.

For example, test_period_in_timeperiod_archive would
call mock('posts/1970/ 1月/index.html',...) instead of
expected mock('posts/1970/Jan/index.html',...) and fail.
Fix settings table in docs
Merge pull request #1309 from al-tonio/date_format_japanese_fix_python2

Fix for locale related issues while running the tests.
enable writing of only selected output paths

- add WRITE_SELECTED setting
- add --write-selected commandline option
Add python 3.4 to tox config.
Merge pull request #1316 from saimn/tox

Add python 3.4 to tox config.
set _cache_open func even if not loading cache, fixes autoreload

The _cache_open attribute of the FileDataCacher class was not set when
settings[load_policy_key] was not True, so saving later failed.
As a precaution, replaced the `if ...: return` style with a plain
if structure to prevent such readability issues and added tests.
Merge pull request #1314 from smartass101/write-selected-only-PR

Enable writing of selected output paths only. Refs #224.