Code Overhaul

My portion of the code overhaul, adding the changes to make it more
extensible and the needed changes to the implemented classes.
Minor Tweaks

Made a few small changes before we merge the two branches.
Merge pull request #1 from Flatscan/StructuralFixes

Structural Fix v.1
Merge branch 'master' of https://github.com/Flatscan/MALTHUS

Conflicts:
	src/malthus/GCP/GCPIndividual.java
	src/malthus/GCP/GCPPopulation.java
	src/malthus/Gene.java
	src/malthus/Individual.java
	src/malthus/Population.java
	src/malthus/SimpleGene.java
Revert "Merge branch 'master' of https://github.com/Flatscan/MALTHUS"

This reverts commit 3b37b296d0be8bb9e60b619f5fdf689a4ae3b60a, reversing
changes made to 665e75b1d3519d67a05f626ca99b70611a510dc2.
Merge pull request #2 from Flatscan/master

Recommiting of Hao's Code