More efficient gaussian sampling

A few optimization for sampling with full covariance matrix:
1) the use of eigh instead of svd, which are equivalent (up to numerical precision),
2) use of broadcasting instead of matrix multiplication for the product U s^(1/2),
3) simpler construction of the random vectors.