Corrected halfUniformCrossover as previous version did not guaranteed that exactly half of swapable genes will be swapped.