http://burtleburtle.net/bob/hash/index.html ported to c99