Now supports multiple populations

We can now support multiple populations and the fitness functions can
use those pops to determine fitness. Also created a test case similar to
one.max for testing two pops based off of each other.