[Genome]: Added GenePool list to Genome class parameters

Rewrote Genome to include the list of GenePools as one of its parameters.
This way, the crossover/mutation operators can take responsibility for
switching them around, and they can rearrange them as necessary (this is
required for any operator that changes the length of the genome, like
cut-and-splice crossover).

Signed-off-by: Sebastian Lenartowicz <slenarto@uoguelph.ca>