Cleanup in math_outer.cpp.
Added constructor unit tests for SparseShape.
Added negative checks for SparseShape in the normalization step.
- SparseShape::mult functions now give the correct output.
- Permuting operations of SparseShape now correctly permute the size vectors.
- Added more unit tests for SparseShape arithmetic functions.