Update dependencies
Optimizations

- Use digest rather than hexdigest
- Use gmpy.mpz rather than Python big integer
- Use gmpy.hamdist rather than bin().count('1')
- Generate one random seed and guess sequentially, rather than guess
  randomly every loop