Add zoom control and improved hashing & speed

The speed increase is achieved by calculating the next generation on one
thread, and drawing on an another. The drawing is slower so not every
generation is drawn. The hash function no longer hashes all empty nodes
to 0, this increases the hash table use from ~5.5% to 7%, so it still
needs a lot of work.