Solving the Evolutionary Puzzle of Human Cooperation