Adds Instances and Attributes type

* Refactors KNNClassifier to use them
* csv handling needed to be moved back into base due
  to a circular dependency
* Also adds the datasets used to test CSV handling

base: Renamed _Storage to storage
base: IntValToString removed
base: Renamed SysValToString to GetStringFromSysVal
base: Added a Precision field to FloatAttribute
base: Migrated to mat64
Moved over stuff from instances
trees: RandomTree

RandomTrees build DecisionTrees using a random attribute
selected at each node.

Squashed commit of the following:

commit 89141f5f238b7d431813c1ae372971561b783927
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 12:55:40 2014 +0100

    Cleaning up before we do random forests

commit 9d385a144e0d5cf2647a10a0968b034615cf0b1a
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 12:55:16 2014 +0100

    binning.go: idiotic correction

commit 1dc01b5049d4a318b3fcde3c9ca2399a274ae85f
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 12:40:57 2014 +0100

    classifier.go: documentation

commit 421ce7547a7c40c11c0428e0fa36a9696ec2eb94
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 12:22:23 2014 +0100

    RandomTree

commit 3c227f2ea156a32c1e65939fd30ae0d77915a73c
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Thu May 8 18:04:47 2014 +0100

    DecisionTree Predict() method

commit c1907e7ec2fa9db1ce6eb70d4631ab33a3da3466
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Thu May 8 17:51:05 2014 +0100

    metrics

commit 1bae8332739d377b8ee904a3ccd01447de7766ca
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Thu May 8 17:19:43 2014 +0100

    instacnces.go: removed debugging

commit 3c5010733eb3bd41eb104eb6025009e6f92434c1
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Thu May 8 16:16:12 2014 +0100

    Random generates the decision tree

commit d55529ae644e39b0c3ada26de5037562c2643cf9
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Thu May 8 16:15:54 2014 +0100

    Correction
RandomForest implementation

Squashed commit of the following:

commit 60de4f47ff26267aaad7c38af6cdfaa7e5531adb
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 17:11:31 2014 +0100

    RandomForests

commit 84ff62946d09cb315bd1c5c1d3fd01b4cd558e1b
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 16:42:13 2014 +0100

    RandomForests are working

commit 1b416e4cf3fd1eb80cca12e006bb171595c5566a
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 16:19:44 2014 +0100

    Debugging output

commit 4aecee05aad5df6b0376fdd7745df768bb50cd2b
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 13:53:55 2014 +0100

    Just before I delete something...

commit 4be11cf7383c2ce4c6454eece0b3ba3af223f082
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 13:50:42 2014 +0100

    Instances: utility methods to support bagging
Changes to support instances/
ChiMerge discretisation

Conflicts:
	base/attributes.go
	base/instances.go
	filters/chimerge.go
	filters/chimerge_test.go
chimerge.go: addressing some of go lint's criticisms