Reworking Uniform and Normal in order to support complex random number generation, and adding Gaussian, Wigner, and Haar matrices. Also making use of _Pragma to greatly simplify OpenMP directives.