Cache static files by hash

Implements #2734.

Deployment note: `GRATIPAY_ASSET_URL` needs to be changed to `https://assets.gratipay.com/` on Heroku. I don't think we'll need to change anything on the CDN side, can you confirm that @whit537 ?
I believe the `website.cache_static` check is redundant, because `asset_etag` is only ever called when `website.cache_static` is `True`.