HyperLogLog Counter

# HyperLogLog Counter

This implements #233. A HyperLogLog counter is a probabilistic counter capable of cardinality estimation (how many unique elements appears in a dataset) with very low memory consumption. In khmer it can be useful to give better guesses for hash size parameters (-x and -N).

## References

- svpcom/hyperloglog@f91ed5db8ca8f4cf7b364f2a54dd89e0a125a699
-  http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf
-  http://research.google.com/pubs/pub40671.html

## TODO

- [x] add tests
- [x] implement Google paper suggestion (64 bits hash function, bias correction)
    
    Kinda done. Using a 64-bits SHA-1 or MurmurHash3, but should rerun bias correction analysis from paper for new constants. For now they work reasonably well.

- [ ] ask @mr-c and @camillescott about the right way to implement extensions
- [x] think more about get_rho function
- [x] parallel reading and HLL merges for better performance
- [x] put constants in a separate header
Seems to duplicate functionality below. Drop?