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

Also added some simple benchmarking which suggests that the optimizations make the script ~4x faster.