Pluggability

1. Make configs pluggable
2. Make back ends pluggable
3. Make spicedham a class


@willkg r?
What is "training_data" and "is_spam" here?

Does "is_spam" reduce the usefulness of this classifier to just spam? Maybe "is_bad" is a better argument implying this is the "bad side" of a set?