Code Restructuring

We decided that since our Individual Class and our Population class
were mostly written that we should make it more general and thus
restructured to them to be abstract classes with the GCP versions being
specific to graph coloring problems.