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 ?
Why not use `.hexdigest()` instead of  base64-encoding the digest ?  That way it's guaranteed to be all hex digits (and therefore ASCII-safe)