Algebraic methods for diagonalization of a quaternion matrix in quaternionic quantum theory