Singular Value and Eigen Decomposition functions

These are both derived from the Jama 1.0.3 java code, reducing the
degree of allocations and using mat64 Matrix methods for element access.