Refactor hash_cleanup_event into periodic_event that can handle more
than one thing
BUG FIX! Test all domain names, not the first one repeatedly
Make the domain in the master struct be its own type instead of just a name string
Cleanup recv and refactor hash key computation into one place
Move setting the next allowed hash entry into a function

Also fixed a bug that likely would have resulted in occasional hangs if
a worker received two or more messages from the zeromq and any but the
last of them caused an error.