Use reproducible hashlib for representing TextureCachedField

TextureCachedField was using `hash(...)` to disambiguate its instances.
However, `hash` is randomized and will hinder reproducible code
generation
8 jobs for reproducible-hash-for-textures in 3 minutes and 23 seconds (queued for 3 seconds)