rewrite the static cache hooks

use etags instead of version and datetimes
create helper function to compute asset URLs with etags appended
replace uses of `asset_url` with calls to the new `asset()` helper
compile "dynamic" assets during wireup
add etags to URLs within CSS