Fix types to match C's more closely

Because the original libketama code uses floats, we need to make sure
we do the _exact_same_ floating point operations in Go in order to get the
same shard values.  A change in precision (from float32->float64 or vice
versa) changes the values just enough to assign different shards to
certain keys.  To maintain compatibility with the perl module, we need
the same floating point round-off errors.
Replace unit test with larger autogen'd compat script

This patch replaces the unit test with a perl script to generate a
thorough compatibility test using values from the perl script.  I'm
pretty certain this tests enough combinations we would see any other
issues due to floating-point round-off.