Now it reads much more of the index file format, and tries to handle
index1/index2 differences more opaquely. I'm not yet happy with the API, it
needs a bit more work.
This was temporarily used for shader key hashing, but now an original
implementation using zlib's crc32 function from crcracker
(https://github.com/NotNite/crcracker/) is used instead. Tests are added
and existing ones are used to ensure it's the same.