Fix bad aliasing in multikey_cache
Fix bad aliasing in multikey_cache

GCC is complaining that we are breaking strict-aliasing rules in the
comparison functions by casting from "char array" to "int32_t *" or
"int64_t *", and dereferencing the pointer. We are also assuming little
endian CPU because we're manually packing the characters to the char
array.

Fix both of these issues by declaring our cached bytes with uint32_t or
uint64_t, and using only bitshifts to manipulate it.

rantala/string-sorting,rantala/string-sorting,rantala/string-sorting,rantala/string-sorting