sparse vectors increase tree creation speed by 400x

This is a tiny change to allow the usage of sparse vectors (http://en.wikipedia.org/wiki/Sparse_vector) and it has huge speed implications. To demonstrate these I've created SparseVectorTest.java if you run it you will get something like:

Training with sparse vectors took: 4 milliseconds
true=0.503 false=0.497 
Training with dense vectors took: 1650 milliseconds
true=0.503 false=0.497 
Most probably yes. I'll run a few experiments later in the week. I might as
well delete the branch.

> > +
> > +    @Test
> > +    public void sparse()  {
> > +
> > +        Random r = new Random();
> > +        LinkedList<Instance> trainSparseVectors = new LinkedList();
> > +        LinkedList<Instance> trainDenseVectors = new LinkedList();
> > +
> > +        for (int instance = 0; instance < 1000; instance++) {
> > +            HashMapAttributes sparseInstanceHmAttributes = new HashMapAttributes();
> > +            HashMapAttributes denseInstanceHmAttributes = new HashMapAttributes();
> > +            for (int feat = 0; feat < 1000; feat++) {
> > +                String key = ((Integer)feat).toString();
> > +//                String key = featureExtractionPipeline.getFeatureName((Integer)e.getKey());
> > +                if(feat == instance){
> > +                    denseInstanceHmAttributes.put(key, 1.0);
>
> Ah, does that mean that this pull request is now redundant?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/sanity/quickdt/pull/35/files#r14104276>.
>