Badge caching

Related to #145.

This institutes a sort-of reverse proxy for badges to try and get around the problems with Github's image proxy.

The `Expires` header is set so the Github proxy does not cache the image.
`Last-Modified` is set to the commit's `Update` time and `If-Modified-Since` will be obeyed (image won't be re-requested from shields.io).
Rebased