Allow main to run as ruby script
Cleaner output for main
Simplify total fitness calculation in population
Don't run end-to-end test that takes a lomg amount of time as a part of unit tests
Introduce constraints
Contraints can return a random value from its range
Use contraints inside vectors
Integrate constraints with population and vector