1. Add CartesianProductEJA.
2. Check the axioms in the constructor when check != False?
+
+3. Add references and start citing them.
+
+4. Implement the octonion simple EJA.
+
+5. Factor out the unit-norm basis (and operator symmetry) tests once
+ all of the algebras pass.
+
+6. Refactor the current ungodly fast charpoly hack (relies on the
+ theory to ensure that the charpolys are equal.)
+
+7. Implement random_instance() for the main EJA class.
+
+8. Implement random_instance() for the subalgebra class.