Assume Sample objects by default
Move keys_for to a class method of SpamClassifier
Require the runner and confusion matrix by default
Add Runner#valid?
Raise ArgumentError with missing attributes