Split the GeneticAlgo into separate files

Minor updates to the code, but mostly just splitting the files. Still
need to put more effort into getting the GA to actually run.
GA working up until tournament selection

Fixed elitism to at least work, not the most efficient or tested method
of doing it, but it looks like it should work.

Setup the selection args and env.

All of the code should now be included (except reporting), the only
problem being that tournament selection does currently work in this
framework.