Name cache files by sha1 rather than asset id

This will optimize same-file asset access and eliminate cache collisions
between deployments.  The only downside I can think of is longer file
names.  I'm not sure why I didn't do it this way from the beginning.