[Generation Model]: Changed sortPopulation to use merge sort

Changed sortPopulation from an O(n^2) bubble sort to an O(nlogn) merge
sort, to make it more efficient on large populations.

Signed-off-by: Sebastian Lenartowicz <slenarto@uoguelph.ca>
[HierarchicalGenePool]: Changed sortPopulation to use GenerationModel sort

Rewrote sortPopulation() in HierarchicalGenePool to use the (newly
improved) population sorter in GenerationModel.

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