Add k-folds

This is the main change. It now splits the data into random folds and then reports the average accuracy across the folds. You can specify a seed and number of folds.