Refactor SimhashIndex to support arbitrary bitlen

- Move bucket key calculation from SimhashIndex to Simhash in order to take the
  bit-length "f" into account when constructing the bucket keys for a simhash.
- Add tests for 32 bit Simhash and SimhashIndex.
- Add ValueError when measuring distance between Simhash of different bitlength.