Make an Evaluator for evaluating how well the perceptron classifies Grids.

Move the Grid.random() code to Evaluator.
Merge remote-tracking branch 'origin/master'
Use k-fold cross-validation and use a defensive assertion to make sure the data set is big enough to handle the number of folds we want to use.