Fitnesses that are nan are never less than others
Visit either internal or leaf by number
Add default constructor to Size struct
Choose internal/leaf node for crossover with 90/10 probability
Oh, THIS is how you use namespaces, lol
Major refactor of individual namespace

- Presenting only genetic_algorithm() in interface
- Errors properly if it can't write log file
- Algorithm broken into parts
Refactor of main