std::rand: wrappers for floats from [0,1] and (0,1).

Provide `Closed01` and `Open01` that generate directly from the
closed/open intervals from 0 to 1, in contrast to the plain impls for
f32 and f64 which generate the half-open [0,1).

Fixes #7755.
libstd: Change all `~fn()`s to `proc`s in the standard library.

This makes `Cell`s no longer necessary in most cases.
libextra: Remove `~fn()` from libextra.
librustc: Remove the one use of `~fn()`
librustc: Convert `~fn()` to `proc()` everywhere.
libsyntax: Remove `~fn()` from the language
auto merge of #10561 : pcwalton/rust/procify, r=alexcrichton

r? @alexcrichton
auto merge of #10542 : huonw/rust/open01, r=alexcrichton

Provide `Closed01` and `Open01` that generate directly from the
closed/open intervals from 0 to 1, in contrast to the plain impls for
f32 and f64 which generate the half-open [0,1).

Fixes #7755.