cleans up long comments & whitespace in log.py
cleans up loggers
fixes parse error in dtlz7
metaclasses \o/
separates log into 2 conditional logs
better local name for random_input_vector
renaming some stuff
select_parents now returns a list
rename GeneticAlgorithm file
switches to itertools-based pairs() implementation
performance testing
messes with some imports
makes Model an abstract base class too!
cleans up some import stuff in __init__
fixes __init__ call in GA
cleans up imports in GA
implements crossover in GA

needs to be cleaned up, but it works. there's even a test!
unbreaks tests for schaffer
fixes type check