Compute the determinant of a square matrix via Gaussian elimination with partial pivoting. A non-square, ragged or empty matrix is a clean 400; a singular matrix simply returns 0.