use Github descriptions for project descriptions
Cache Github API responses

The Github API rate limits to 60 requests per hour, which can be
frustrating during development. This commit caches responses locally,
which gets around this.
rebuild the index if any data or templates change