Refoctor vorka.rb

All the common methods with no shared data is extracted into a seperate
util.

Remaining methods generate and fitness are extracted into their
respective classes to avoid passing around the for every iteration.