Remove usage of .hash.

Built-in hash methods are randomised across restarts of the ruby VM;
this makes it unsuitable for use as an index key, which must persist
across restarts.

This commit removes usage of .hash, replacing it with:
- a simple rolling hash, in the case of integer LSH.
- conversion from binary to decimal, in the case of binary lsh.

This has the added benefit of reducing the key length for binary lsh
where number_of_random_vectors < 64.
Merge in fix to make hashing consistent.