Moved enums declarations to header file
Refactoring crossover with get_node(Type)
Moving getter functions to bottom of source file
Making Individual friend of Node
Using at() over [] for vectors in Individual
Adding defaults to create()
Implementing more genetic operators

All but hoist are working properly.
Better checks for mutate function
Fixing patches (revert into feature branch)
Preferring [i] over at(i) because of performance
Using std::swap on hoist, fixes bug!
Implementing at(i) on Individual for cleaner mutate code
Merge branch 'mutations'

Yeah! Full working set of genetic operators.
Find best trial by score rather than fitness
Using forward declarations in headers
Petty syntax
Re-ordering push_results arguments
Making RandomGenerator.rd private
Passing primitives by value instead of const ref in individual
Updating to Project #3 in file comments