Implement a content hash for remapped build scripts This commit adds a `getContentHash` method on classes which have been rewritten by our remapping build script compiler. This content hash gives access to a hash of the original class, before it has been remapped. The hash is provided as a lazy `HashValue`. The value of the hash is stored into the class as a static field, in hex format (to simplify the implementation) and is returned lazily as a `HashValue`, but the generated `HashValue` is not cached (so subsequent calls to `getContentHash` are going to return a new `HashValue`). This means that if you don't look at the hash value, there's no overhead to adding the content hash, but there is at reading it.