stoch_simul: deal with zero variance
We add a very small number to the covariance matrix to compute irfs:
SS(M_.exo_names_orig_ord,M_.exo_names_orig_ord)=M_.Sigma_e+1e-14*eye(M_.exo_nbr);
cs = transpose(chol(SS));
The reason: If a shock has 0 variance, the matrix isn't definite positive and chol() can't be computed. The small positive amount on the diagonal insure that the matrix is nevertheless positive definite in this case.
It would be better to add this epsilon only on zero diagonal elements, to avoid changing the covariance matrix in the usual case; and possibly also providing a warning or error.