Refactored, TrainingInstance no longer takes a size in constructor.
Refactor to remove the FeatureChoice class.
Refactored to remove references to FeatureChoice which is no longer used.
Refactored to remove the hard to understand boolean in the constructor, replaced with two subclasses instead. Only differ in initialization.
Refactored to use the new subclasses of TrainingSet instead, when TrainingSet was made abstract.