In the current build the polygon header hashing mechanism uses an unsigned 64bit integer to store selected header property bits. This space is however insufficient to store all the, possibly, useful data we need.
Hence I adapted a CRC32 algorithm found here (there're lots of them in the wild, maybe even faster) that calculates an hash from a stream of bytes from a given chunk of memory. The value returned should be unique for a small amount of data (all headers = 28 bytes).
I included header masks to choose what to hash, replicating the current build behavior plus some other useful bits. In the future we can unmask additional bits if required.
This fixes LeMans 24 headlights, and maybe other corner cases as well.
In addition I temporary disabled in <New3D.cpp> the "header[6] = 0" check which, as I commented in, doesn't seem to cause artifacts.
Patch for r679