Adds Instances and Attributes type

* Refactors KNNClassifier to use them
* csv handling moved back into base due to a circular dependency
* Also adds the datasets used to test CSV handling
Merge pull request #27 from Sentimentron/instances

Adds Attributes and Instances
Equal-width and Chi-merge discretisation
Initial work on decision trees

	Random Forest has occasional disastrous accuracy:
	 never seen that happen in WEKA
Merge pull request #29 from Sentimentron/discretisation-upstream

Equal-width and Chi-merge discretisation
ChiMerge seems to improve accuracy
ID3 algorithm working
Passes all the tests
Reduced-error pruning
Update README.md
Create travis.yml
Rename travis.yml to .travis.yml
Identified source of the low accuracy
Added some starter documentation.
Update README.md
Update README.md
Update README.md
Fixing up stuff for Travis
Merge branch 'docs' into travis
Fixing up stuff for Travis