Replace random rotation caching with hash function to stop memory leak.

See my comment on this issue: https://github.com/Shukaro/Artifice/issues/63

As users explore the world, the client caches millions of BlockCoord and HashTableEntry objects, resulting in devastating GC collections later on.  I've replaced the randomness with an "okay" hashing function.  There might be some room for improvement aesthetically, but it will stop the memory leak.