Added the ability to use different classifiers by adopting the interface
of the KNNClassifier.  Passing the classifier as an argument to the
test bench's train method makes it easy to calculate the image recognition
accuracy after each training cycle so now training proceeds until either
the minAccuracy or maxCycles is reached.  This cleaned up the top level
(demo.py and train_and_test.py) by removing the classification code I was
using before.  The accuracy calculation was moved to the test bench's test
methon which also cleaned up the top level files.