pairings: implement a genetic algorithm,

and move pairings code to separate module
pairing: avoid mutations that move a player from one round to another round
pairing fitness: change to a 'penalty' system

where undesirable characteristics of a given matching are enumerated
and penalty points assigned