-1. Finish CartesianProductEJA: add to_matrix(), random_instance(),
- one()... methods. This will require rethinking what a "matrix
- representation" and "matrix space" means for a cartesian product
- algebra. Do we want our matrix basis to consist of ordered pairs
- (or triples, or...)? Should the matrix_space() of the algebra be
- the cartesian product of the factors' matrix spaces? Can we just
- fix the matrix basis/space after we call the FDEJA initializer?