WIP: Add timezone to datetime objects. Refs #962.

Based on https://github.com/getpelican/pelican/pull/977, but it adds timezone information before formatting.

On my machine `python setup.py test` doesn't work with an `AttributeError: 'module' object has no attribute 'test_generators'` error whether this change is applied or not, so I couldn't update tests. Tell me if I made a mistake for how to run tests.
(I personally tested on my website and confirmed that timezone is appended correctly.)

Please point out if I overlooked something.

Reference: https://github.com/getpelican/pelican/issues/962
How about we move timezone logic out a level so we don't have duplicate logic to determine the timezone both here and inside modified.

```python
default_timezone = getattr(self.settings, 'TIMEZONE', 'UTC')
timezone = getattr(self, 'timezone', default_timezone)

if hasattr(self, 'date'):
    self.date = set_date_tzinfo(self.date, timezone)
    ...

if hasattr(self, 'modified'):
    self.modified = set_date_tzinfo(self.modified, timezone)
```