changes some defaults
small changes to GA
… how did this code work before?
adds fast SearchIO container
some experimentation and cleanup with GA
changing up imports in model.py
separates generated + final functions in dtlz7
tests for dtlz7
implements mutation
got genetic algorithm working
cleaned up memo()
more inclusive checking for random_index)
renames to reflect changes in spec names
big refactor of simulated annealer

- moves p up and outside of run()
- better state management, fewer calls to model()
exports compute_model_io fuction
adds compute_model_io to GA
ends iteration at iteration point
starts returning useful things from GA
ok, like, actually fixes memo._to_str
adds some defaults