libcore: add N(0,1) and Exp(1) distributions to core::rand.

Sample from the normal and exponential distributions using the Ziggurat
algorithm.
auto merge of #6098 : huonw/rust/core-rand-dists, r=graydon

(This is only a94c86e, the other two are from #6073.)

Very basic support for sampling from N(0,1) and Exp(1). This is basically my experimentations with the Ziggurat algorithm, and will certainly get reorganised when [Lib-rand](https://github.com/mozilla/rust/wiki/Lib-rand) gets finished.

No tests or anything, other than generating 1 million numbers from each distribution, loading it into R and plotting and performing some basic tests (which passed) i.e. Pearson's chi-squared for the Exp(1) values, and Shapiro-Wilks for the N(0,1) values.

![normal-exp](https://f.cloud.github.com/assets/1203825/435879/097fbf4e-b011-11e2-90fe-6cf9a7f80dce.png)

(These will be tested better when the lib rand changes linked above start to happen.)

(Also, it's not hugely relevant, but I noticed that this is about double the speed of R for summing 10000000 samples from the normal distribution, even though the current random-float code is subobtimal.)

No need to merge this if it seems like it's being too hasty.