Updating gitignore
Refactoring individual namespace to take needed values

Which is sent from problem.thing when called, eliminating the need to
hold a problem on the Individual class.
Using strings instead of cout in individual namespace
Updating fitness on evaluation
Fixing crossover
Refactoring problem struct
Adding default constructor to Individual
Adding genetic algorithm
Adding rest of internals to individual
Updating main for running algorithm
Refactoring constructor/defaults of problem struct
Updating size when evaluating
Updating gitignore