First pass at CoordinateSpaces.

This adds a new vector space, CoordinateSpace. What a CoordinateSpace
adds is a "dimensions" field and a way to obtain values of the
components of a vector.
Add example of random forest implementation.
Fix bugs in random forest example + yeast dataset.

There were several bugs in the random forest example that were
discovered while testing quality of the random forest on 2 data sets.
This also adds a new data set to cross-validate as an example.
Additionally, the data sets are moved out into their own file.

On top of others, the decision to always split a region with more than
minSplitSize points was made. Before, if there error couldn't be
decreased, then we gave up. However, since axes are sampled, this was a
bad strategy. Especially for datasets like the S. cerevisiae one, where
a couple of axes are 0.0 for a majority of data points.
Reorganize random forest example.

I didn't like the way the code read, so I reorganized it so the
interesting bits were in the right order.
Reorganize inheritance vector space classes.

This reorganizes the inheritance hiearchy of vector spaces. Namely,
InnerProductSpace no longer extends NormedVectorSpace. A
NormedVectorSpace is available implicitly if an NRoot is available for
the scalar.

Modules are no 2-sided by default. There is also a LeftModule now too.

CoordinateSpace also provides a way to access the basis.
Use `Rational` as field type in `Iris` data set.
Better described datasets & RF regression example.

This adds a new dataset for regression, along with an example testing
the regression capabilities of the RF example. We also made the datasets
more descriptive, which let's us automagically parse and load the
dataset, as well as converting categorical variables to binary strings
and the like.
Don't box when use ops with Int on the RHS.

This adds new macros for handling up-conversions from number types
before applying an op. Now, for instance, (a: A) * 2, where we have
`Ring[A]`, won't box.
Attempt to specialize RF example (failed attempt).

So, I can create specialized instances of RandomForest directly, but try
to use RandomForest.regression, and it won't use the specialized
variant. Needs to be looked at by better (ie. Erik's) eyes.
Merge remote-tracking branch 'tixxit/topic/random-forest' into 2.10.0