Refactoring point mapping into generator.

Naive approach for used_points list makes it exceptionally slow...
Speeding up mapping with unused list and bisect.
Added comments and refactored descramble into scramble with hash
inititalization value as parameter.
cleaning up