Improve changelog generator.

This was used to generate the change log in [Pull 284](https://github.com/D-Programming-Language/d-programming-language.org/pull/284).

It's a big refactor so the diff view won't be helpful.

I've added caching to avoid excessive querying, and the changelog is written to a file.