vim: Fix :RustRun when cwd has a space in it
Guide: Iterators, Macros and Unsafe wording fixes
Guide: Iterators: …are always lazy + rewrap as per request
Convert some notes to help messages

Closes #18126.
rand: Add next_f64/f32 to Rng.

Some random number generates output floating point numbers directly, so
by providing these methods all the functionality in librand is available
with high-performance for these things.

An example of such an is dSFMT (Double precision SIMD-oriented Fast
Mersenne Twister).

The choice to use the open interval [0, 1) has backing elsewhere,
e.g. GSL (GNU Scientific Library) uses this range, and dSFMT supports
generating this natively (I believe the most natural range for that
library is [1, 2), but that is not totally sensible from a user
perspective, and would trip people up).

Fixes https://github.com/rust-lang/rfcs/issues/425.
Change Json methods to &str and allow Indexing

Json's find, find_path, and search methods now use &str rather
than &String.

Json can now be indexed with &str (for Objects) and uint
(for Lists).

Tests updated to reflect this change.

[breaking-change]
Fix ICE when checking call overload

If the overloaded method does not have a tuple or unit type as its
first non-self parameter, produce a list of error types with the
correct length to prevent a later index bound panic.  This typically
occurs due to propagation of an earlier type error or unconstrained
type variable.  Closes #18532
Add regression test for #18532
Ignore whitespace tokens when re-computing spans in save_analysis
Dump char and byte positions in save_analysis
Doc: corrects obsolete pointer syntax

Goes from ~ to box
Closes #18551
Separate string->integer implementation in strconv
Remove unnecessary features from strconv
Clean up from_str_float and use iterators
Simplify float string conversion function further

We now have a really simple function signature:

    pub fn from_str_radix_float<T: Float>(src: &str, radix: uint) -> Option<T>

By removing some of the arguments, we remove the possibility of some invalid states.
Deprecate {f32, f64}::from_str_hex

This is now covered by `FromStrRadix::from_str_radix`
Small doc fixes
auto merge of #18460 : gamazeps/rust/issue18451, r=steveklabnik

Closes #18451
Also fix undefined behaviour when shift equals the number of bits

LLVM states:  "If op2 is (statically or dynamically) negative or equal
to or larger than the number of bits in op1, the result is undefined."
Clean-up transmutes in libsyntax