Adds Attributes and Instances

A possible solution for issue #24.

* Adds an *Attribute* interface and the *CategoricalAttribute* and *FloatAttribute* implementations
** *CategoricalAttribute* is for discrete string values
** *FloatAttribute* is for numeric values
* *Instances* Combines an *Attributes* slice and storage for a self-contained dataset representation.
* *KNNClassifier* has been modified to use *Attribute* and *Instance* types
** See the test file for use of the API
* CSV handling needed to be moved back into base due  to a circular dependency
** Also adds the datasets used to test CSV handling
* Doesn't get rid of skelterjohn/go.matrix dependency yet because the `SwapRows()` method has no equivalent in the new library.