std::rand docs and a new weak_rng function

The weak_rng as you can see in the docs is made to have a "no-thinking" way to get a fast rng for non-crypto purposes. I think RNG APIs should be as dumb-proof as possible to avoid any mistakes. It's good that the default rng is a secure one, but I don't want to force people to actually google the various algos to be able to know which to choose and possibly make a wrong choice. So if you need a fast non secure one you can use weak_rng. I think that makes sense.