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.